我手动将所有css / js添加到我的布局中,就像在页面上一样。我决定我也可以简单地使用捆绑包(显然不是)。
导致问题的第一个捆绑包:
bundles.Add(new StyleBundle("~/Content/css").Include(
"~/Content/bootstrap.css",
"~/font-awesome-4.4.0/css/font-awesome.css",
"~/Content/daterangepicker-bs3.css",
"~/Content/bootstrap-dropdown-checkbox.css",
"~/Content/kendo/2015.2.624/kendo.common.min.css",
"~/Content/kendo/2015.2.624/kendo.mobile.all.min.css",
"~/Content/kendo/2015.2.624/kendo.dataviz.min.css",
"~/Content/kendo/2015.2.624/kendo.default.min.css",
"~/Content/kendo/2015.2.624/kendo.dataviz.default.min.css",
"~/Content/site.css"));
这会导致错误,例如:
http://localhost:58703/Content/images/kendoui.ttf?v=1.1 Failed to load resource: the server responded with a status of 404 (Not Found)
http://localhost:58703/fonts/fontawesome-webfont.woff2?v=4.4.0 Failed to load resource: the server responded with a status of 404 (Not Found)
我应该注意到,关于这些错误最荒谬的部分是,如果我点击它说它无法找到该文件的网址,则文件就在那里,正是它所说的位置它无法找到它们。
导致问题的下一个捆绑包:
bundles.Add(new ScriptBundle("~/bundles/mapcrap").Include(
"~/Scripts/daterangepicker.js",
"~/Content/bootstrap-dropdown-checkbox.js",
"~/Scripts/kendo/2015.2.624/jszip.min.js",
"~/Scripts/kendo/2015.2.624/kendo.all.min.js",
"~/Scripts/kendo/2015.2.624/kendo.aspnetmvc.min.js",
"~/Scripts/kendo.modernizr.custom.js",
"~/Content/jscolor.js",
"~/Scripts/graphstuff.min.js"));
这会导致愚蠢的行为,如:
http://localhost:58703/jscolor/arrow.gif Failed to load resource: the server responded with a status of 404 (Not Found)
http://localhost:58703/jscolor/hs.png Failed to load resource: the server responded with a status of 404 (Not Found)
http://localhost:58703/jscolor/cross.gif Failed to load resource: the server responded with a status of 404 (Not Found)
我已经尝试了一些我在搜索时发现的修复程序,其中大多数都引用了1.1.1版本的问题。但是,我相信这是几年前的事情。除非M $还没有真正使捆绑的东西发挥作用。
它的出现似乎正在制作随机URL。现在正在
中寻找'kendoui.woff''\Content\images\kendoui.woff'
当正确的位置
时\Content\kendo\2015.2.624\images\kendoui.woff
答案 0 :(得分:11)
我有点晚了但是对于font-awesome /fonts/fontawesome-webfont.woff2?v=4.4.0
得到了同样的404错误并通过将这些行添加到<system.webServer>
下的web.config文件来修复它:
<staticContent>
<remove fileExtension=".woff" />
<mimeMap fileExtension=".woff" mimeType="application/font-woff" />
<remove fileExtension=".woff2" />
<mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
</staticContent>
答案 1 :(得分:2)
MS确实有一个类来处理这个问题,只需使用以下代码就可以了:
bundles.Add(new StyleBundle("~/bundles/css").Include(
"~/Content/css/*.css", new CssRewriteUrlTransform()));
注意CssRewriteUrlTransform,它会在缓存捆绑包之前将css中的相对链接更改为正确的链接。
答案 2 :(得分:2)
请查看Telerik澄清: http://docs.telerik.com/kendo-ui/aspnet-mvc/fundamentals#css-bundling
捆绑必须以这种方式完成:
bundles.Add(new StyleBundle("~/Content/kendo/...VERSION.../css").Include(
"~/Content/kendo/...VERSION.../kendo.common.min.css",
"~/Content/kendo/...VERSION.../kendo.default.min.css"));
答案 3 :(得分:1)
您遇到的问题不是由于捆绑包本身存在任何问题,而是捆绑的文件中的资源正在引用具有相对路径的其他文件。由于您的包具有与物理文件不同的路径结构,因此相对路径无法正确引用文件。
要纠正此问题,您可以操纵束路径结构以使相对路径仍然正确,或者您可以将相对路径(../ images/whatever.gif)更改为绝对路径(/ images / whatever。 gif或http://www.someothersite.com/whatever.gif)。
在IIS中为.woff文件配置的MIME类型丢失也可能存在问题,即使该文件存在,也会导致404.