MVC捆绑:错误403

时间:2013-08-27 20:20:10

标签: asp.net-mvc kendo-ui web-deployment bundling-and-minification kendo-asp.net-mvc

使用VS'12,Asp.net - C# - InternetApplication Template,KendoUI,EF Code First

这是我的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作为参考,我确实改变了一些内容,但错误仍然存​​在。

我想因为KendoUI附带的.min文件而想到它,但我无法确定。

供您参考,这是我的_Layout.cshtml,以及我如何调用脚本。

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

2 个答案:

答案 0 :(得分:36)

尝试更改

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")

答案 1 :(得分:4)

这是因为你使用与现有目录相同的'别名'(/ Content / kendo)作为样式包。

一旦你使用了另一个别名(/ Content / css / kendo /或/ Content / whatevernonexistingdir),问题就解决了。

但请注意:css的“root”已更改,因此在css中使用指向子文件夹的(背景)图像时,请考虑到这一点!