加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 使用MVC w / Bundles时CSS中的相对路径无效

发布时间:2020-12-16 03:29:39 所属栏目:asp.Net 来源:网络整理
导读:我已经开发了几个月的MVC5 Web应用程序.我已经发布了3个用于开发,测试和预期公共服务器的服务器.所有内容都经过了十几个beta测试人员的测试,并决定本周末使用网络应用程序. 在将Web应用程序发布到实时(公共)主机之前,我修改了web.config以禁用公共站点的调试
我已经开发了几个月的MVC5 Web应用程序.我已经发布了3个用于开发,测试和预期公共服务器的服务器.所有内容都经过了十几个beta测试人员的测试,并决定本周末使用网络应用程序.

在将Web应用程序发布到实时(公共)主机之前,我修改了web.config以禁用公共站点的调试模式.发布后,出现了与缺少CSS和JS资源相关的各种问题.

在阅读了很多关于Bundles和404错误的文章后,我发现了一个暗示将以下内容添加到Web.config:

<modules runAllManagedModulesForAllRequests="true">
  <remove name="BundleModule" />
  <add name="BundleModule" type="System.Web.Optimization.BundleModule" />
</modules>

这解决了StyleBundle和ScriptBundle配置的404问题,但是现在我对以前工作正常的图像有404错误.我不确定解决这些问题的最佳方法.我不想重新定位图像,我不想编辑CSS,因为这些是分发文件(jQueryUI,ThemeRoller,DataTables等).我想保持他们的分发文件夹结构和原始源文件(CSS和JS)不被修改.

问题的一个例子.

DataTables发布在我的?/ Scripts文件夹中:

/Scripts/DataTables-1.10.2/
/Scripts/DataTables-1.10.2/media/css
/Scripts/DataTables-1.10.2/media/images
/Scripts/DataTables-1.10.2/media/js

捆绑配置:

bundles.Add(new ScriptBundle("~/bundles/DataTables").Include(
     "~/Scripts/DataTables-1.10.2/media/js/jquery.dataTables.js"));

bundles.Add(new StyleBundle("~/bundles/DataTables.css").Include(
     "~/Scripts/DataTables-1.10.2/media/css/jquery.dataTables.css"));

jquery.dataTables.css包含对../images/someimage.png的引用,并且启用了Web.config调试模式,这可以完美地工作.现在调试模式已被禁用且Bundles正在缩小/合并,我收到404错误:

http://example.com/GenericError.htm?aspxerrorpath=/images/someimage.png"

似乎现在假设图像URL相对于/ Bundles / – 虽然我不是正面的.

必须有一个我缺少的额外配置.有人能指出我正确的方向吗?

编辑

拉斐尔对这个问题的评论以及他对另一个类似的SO问题的URL并没有帮助解决这个问题. Sean对BundleTransformer的推荐似乎可能有效,但我找不到任何关于如何安装此软件包的文档.

解决方法

请参阅我的回答:
CSS/JS bundle in single file in mvc when publish with release option

它处理这个确切的问题以及解决它的选项.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读