2015-05-28 13 views
10

Bối cảnh: Tôi di chuyển một ASP.NETMVC 5 ứng dụng (được phát triển trong Windows 8.1, VS2013 Cộng đồng, .NET 4.5.1, thành viên MySql tùy chỉnh và cung cấp vai trò) dự án để Monodevelop (trong Ubuntu 14.4, Monodevelop, Mono).Stylesheets và các kịch bản bó không làm việc trong Mono

Trong lớp ~/App_Start/BundleConfig tôi

public static void RegisterBundles(BundleCollection bundles) 
    { 
     BundleTable.EnableOptimizations = true; 

    bundles.Add(new StyleBundle("~/Content/css").Include(
        "~/Content/bootstrap.css", 
        "~/Content/site.css")); 

     bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
        "~/Scripts/modernizr-*")); 
    } 

Trong ~/Views/Shared/_Layout.cshtml quan điểm của tôi

@Styles.Render("~/Content/css") 
@Scripts.Render("~/bundles/modernizr") 

Trong tôi Web.Config

<add namespace="System.Web.Optimization" /> 

Cũng

<compilation defaultLanguage="C#" debug="false"> </compilation> 

Ngoài ra Microsoft.Web.Infrastructure.dll bị xóa khỏi thư mục bin.

Vấn đề: Tôi không thấy rằng các bó đang nhận được trả lại khi tôi xem nguồn trong trình duyệt:

Các liên kết đang hướng về phía thư mục, Nó sẽ hiển thị tập tin trong các thư mục

<link href="/Content/css" rel="stylesheet"/> 
<script src="/bundles/modernizr"></script> 

Gói này hoạt động rất tốt trên Windows nhưng trên Ubuntu, tôi chỉ thấy các thư mục

Tôi đang làm gì sai ở đây?

+3

Bạn đang gỡ lỗi và có '' hoặc 'BundleTable.EnableOptimizations = false;'? – rageit

+0

@rageit - Tôi đang gỡ lỗi và không thể thấy 'BundleTable.EnableOptimizations' trong dự án của tôi. Có gì đó trong web.config hoặc BundleConfig không? Nếu có thì tôi có thể sử dụng nó như thế nào? – xameeramir

+1

Bạn có một 'Microsoft.Web.Infrastructure.dll' trong thư mục' bin' của bạn không? Nếu vậy, hãy thử xóa nó. Mono có cài đặt riêng, nó sẽ sử dụng nếu tệp này bị thiếu. –

Trả lời

6

Bên BundleConfig tập tin của bạn thêm dòng sau:

BundleTable.EnableOptimizations = true; 

Sau đó, chuyển sang phát hành chế độ.

Điều này cần thực hiện thủ thuật

+0

vui vì tôi có thể giúp :) –

1

Tôi vừa mới tự mình gặp vấn đề này. Câu trả lời của Mihai-Tibrea thực sự hiệu quả, nhưng nó dẫn đến những yêu cầu không thể chấp nhận cho mục đích của tôi.

Nếu luôn tạo điều kiện cho bundling (BundleTable.EnableOptimizations = true; và/hoặc xây dựng trong chế độ phát hành) là không thể chấp nhận xem xét như sau:

Trong BundleConfig.cs tìm thấy một dòng như sau:

"~/Content/site.css" 

Thay đổi điều đó thành

"~/Content/Site.css" 

Lưu ý rằng trong trường hợp, tên tệp rất quan trọng, trong khi đó không quan trọng trong cửa sổ. Vì vậy, html của bạn cũng cần sử dụng site.css cấp thấp HOẶC gói của bạn cần phải bắt đầu bằng chữ hoa.

Các vấn đề liên quan