标题几乎说明了一切。 在 jquery-ui.css 中,它定义了如下样式:
ui-widget-content {
border: 1px solid #aaaaaa/*{borderColorContent}*/;
background: #ffffff/*{bgColorContent}*/ url(images/ui-bg_flat_75_ffffff_40x100.png)/*
color: #222222/*{fcContent}*/;
}
这在开发中工作正常,但一旦部署,url 就不再解析。网站部署在IIS7默认网站下。所以在浏览器控制台中我可以看到它正在寻找图像
http:// (servername)/(appName)/Content/images/ui-bg_glass_75_e6e6e6_1x400.pnginstead of
http:// (serverName)/(appName)/content/themes/base/images...
Here is the bundle config:
bundles.Add(new StyleBundle("~/Content/css").Include(
"~/Content/themes/base/jquery-ui.css",
"~/Content/site.css"
));
如何使这些 URL 正确解析?
最佳答案
Ufuk 的回答让我开始思考。将应用程序名称附加到包的虚拟路径的前面破坏了我所有的样式。
bundle 函数获取 include 语句中的所有 CSS 文件,并将它们压缩到一个文件中,该文件位于 bundle 的虚拟路径中指定的 URL 中。此包中包含的 CSS 文件中指定的 url 使用包的给定虚拟路径在运行时构建其 URL。这在 dev 中运行良好,因为 dev 不使用包,它单独/直接引用每个 css 文件。
解决方案是使用正确的虚拟路径创建一个包:
bundles.Add(new StyleBundle("~/Content/themes/base/css").Include(
"~/Content/themes/base/jquery-ui.css")):
感谢 Ufuk 的建议和指导。
关于css - MVC jQuery UI CSS url 在部署后无法解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18184911/