asp.net-mvc – 使用MVC w / Bundles时CSS中的相对路径无效
我已经开发了几个月的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 它处理这个确切的问题以及解决它的选项. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – StackExchange站点如何关联用户帐户和OpenI
- 为什么我不能在运行时编辑我的ASP.NET Web应用程序?
- asp.net-mvc – ASP.net MVC 3项目文件没有出现在新项目对话
- asp.net – 不能得到内容的内容,因为内容不是文字
- asp.net – 诊断“请求超时”HttpExceptions
- asp.net-core – 我可以在不是ASP.NET Core的.NET.core应用
- asp.net-mvc – 在ASP.NET MVC站点上集成PayPal的简单解决方
- efcore 新特性 SaveChanges Events
- asp.net-mvc-3 – 部署ASP.NET MVC应用程序时IIS 7.5 403访
- asp.net – DataMember Emit默认值