14

使用VS'12,Asp.net - C# - InternetApplication模板,KendoUI,EF代碼第一次MVC bundeling:錯誤403

這是我的MVC BundleConfig.cs

 bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
        "~/Scripts/jquery-{version}.js")); 

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

     // The Kendo CSS bundle 
     bundles.Add(new StyleBundle("~/Content/kendo").Include(
       "~/Content/kendo/kendo.common.*", 
       "~/Content/kendo/kendo.default.*")); 

     // The Kendo JavaScript bundle// or kendo.all.min.js if you want to use Kendo UI Web and Kendo UI DataViz 
     bundles.Add(new ScriptBundle("~/bundles/kendo").Include(
            "~/Scripts/kendo/kendo.web.min.js", 
            "~/Scripts/kendo/kendo.aspnetmvc.min.js")); 

你也應該知道我在跑完這兩行BundleConfig.cs

 bundles.IgnoreList.Clear(); 
     bundles.DirectoryFilter.Clear(); 

我一直在收到403訪問被拒絕,當我嘗試託管項目時出現文件禁止錯誤。

我試過使用This Awesome Post作爲參考,在那裏我改變了一些東西,但錯誤仍然存​​在。

我想這是因爲.min文件KendoUI出現的,但我無法確定。

僅供參考,這是我的_Layout.cshtml,以及我如何調用腳本。

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

回答

33

嘗試改變

bundles.Add(new StyleBundle("~/Content/kendo").Include(
      "~/Content/kendo/kendo.common.*", 
      "~/Content/kendo/kendo.default.*")); 

bundles.Add(new StyleBundle("~/bundles/css/kendo").Include(
      "~/Content/kendo/kendo.common.*.css", 
      "~/Content/kendo/kendo.default.*.css")); 

然後

@Styles.Render("~/Content/kendo") 

@Styles.Render("~/bundles/css/kendo") 
+0

令人驚訝的是,他們都在/內容導致問題,我猜? - 感謝您的快速回復! –

+6

對於那些感興趣的人:對'StyleBundle'使用'〜/ Content'不起作用,因爲它已經是一個現有的文件夾。 –

3

這是因爲您使用與已存在的目錄相同的'別名'(/ Content/kendo)作爲stylebundle。

一旦您使用別名(/ Content/css/kendo /或/ Content/whatevernonexistingdir),您的問題就解決了。

但請注意:css的'根目錄'已更改,因此在css中使用指向子文件夾的(背景)圖像時,請考慮這一點!

+1

所以....你如何解決這個問題的圖像? –