2014-04-06 16 views
10

Ứng dụng MVC 4 của tôi hoạt động tốt trên máy tính cục bộ của tôi.Tệp CSS không hiển thị trên máy chủ - Lỗi ASP.NET MVC Gói. 403 - Bị cấm: Truy cập bị từ chối

Tuy nhiên, các tệp CSS không hoạt động sau khi tôi xuất bản (không ảnh hưởng đến bố cục của trang web).

Tôi có thể xem CSS các tệp có trên máy chủ.

Khi tôi nhìn vào mã nguồn, tôi có thể thấy

<link href="/Content/css?v=fxCdHAOgPDvcROxkMfEwGQggO9uCfzckN3PaN8BOIzI1" rel="stylesheet"/> 

nơi như trên máy tính địa phương của tôi, mã nguồn cho thấy như

<link href="/Content/css/myFile.css" rel="stylesheet"/> 
<link href="/Content/css/myFile02.css" rel="stylesheet"/> 

Vì vậy, trong giao diện mã nguồn trên máy chủ, tôi nhấp vào Content/css?v=fxCdHAOgPDvcROxkMfEwGQggO9uCfzckN3PaN8BOIzI1 và trình duyệt đưa tôi đến 403 - Bị cấm: Quyền truy cập bị từ chối.

Tôi thêm các tập tin CSS với lớp BunldeConfig.cs

public class BundleConfig 
    { 
     // For more information on Bundling, visit http://go.microsoft.com/fwlink/?LinkId=254725 
     public static void RegisterBundles(BundleCollection bundles) 
     { 
      bundles.Add(new ScriptBundle("~/bundles/javascript").Include(
         "~/Scripts/1.9.1.js", 
         "~/Scripts/jTools.js", 
         "~/Scripts/script.js" 
         )); 

      bundles.Add(new StyleBundle("~/Content/css").Include(
       "~/Content/Css/website.css", 
       "~/Content/Css/banner.css", 
       "~/Content/Css/reusable.css", 
       "~/Content/Css/lists.css", 
       "~/Content/Css/tooltip.css", 
       "~/Content/Css/overlay.css" 
       )); 


     } 
    } 

Câu hỏi của tôi là, giả sử đây không phải là một vấn đề CNTT với máy chủ (nó đã làm việc tốt cho đến khi thời gian gần đây) là có cái gì sai với mã của tôi?

+1

Bản sao có thể có của [gói ASP.NET MVC framework 4.5 CSS không hoạt động trên lưu trữ] (http://stackoverflow.com/questions/12081255/asp-net-mvc-framework-4-5-css-bundles -Không-làm việc-trên-the-hosting) –

Trả lời

21

Vấn đề của bạn là bạn đang sử dụng ~/Content/css làm bí danh nhóm trong new StyleBundle("~/Content/css"), trong khi đường dẫn này thực sự tồn tại.

Vì vậy, khi bạn yêu cầu <link href="/Content/css?...>, bạn chủ yếu yêu cầu danh sách thư mục và bị cấm.

Hãy thử sử dụng thứ gì đó khác, như new StyleBundle("~/Content/styles").

LƯU Ý: Nếu bạn sử dụng một cái gì đó như ~/Content/styles làm bí danh, bạn có thể gặp sự cố với url tương đối trong các tệp .css của mình. Nó có vẻ lạ, nhưng bạn có thể sử dụng một cái gì đó tốt hơn như ~/Content/Css/someAlias

+1

Sigh - Tôi thực sự biết điều này, khoảng 2 năm trước ... Đó là lẻ những gì bạn quên khi bạn ngừng sử dụng mọi thứ. Cảm ơn bạn, đã giải quyết hoàn hảo – MyDaftQuestions

+1

Bạn được chào đón. Một gợi ý nhỏ để tham khảo trong tương lai. Nó sẽ hữu ích hơn cho người khác nếu bạn thay đổi tiêu đề của bạn thành một cái gì đó giống như 'lỗi ASP.NET MVC bó. 403 - Bị cấm: Quyền truy cập bị từ chối.' – lalibi

+0

sau hai giờ làm việc cuối cùng +1 –

1

Trong phần <system.web> của tệp web.config gốc, chế độ gỡ lỗi không được bao gồm. khi bạn xuất bản ứng dụng của mình, nó không bao gồm thuộc tính gỡ lỗi. Vì vậy, bạn bao gồm mã sau:

<compilation debug="true" targetFramework="4.5"> thay vì <compilation targetFramework="4.5"> trong tệp web.config của bạn.

Để biết thêm thông tin Bạn có thể theo dõi This Link.

+1

Điều này giải quyết được triệu chứng nhưng không khắc phục được nguyên nhân. Để có câu trả lời đúng, hãy tham khảo câu trả lời của @ lalibi. –

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