使用release选项发布时,mvc中的单个文件中的CSS / JS包

前端之家收集整理的这篇文章主要介绍了使用release选项发布时,mvc中的单个文件中的CSS / JS包前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经创建了MVC应用程序.当我在Azure上发布应用程序的release选项时,所有的css和js文件都会在页面中的一个bundle中加载. (打开视图的页面来源,然后显示css的单个链接).

当我在发布配置文件中发布具有Debug选项的网站时,所有的CSS都会加载个人.

我的问题是发布网站与发行版选项主题未正确加载,但调试选项主题正确加载.我想只发布我的应用程序与版本选项.如果有人面对这个问题,得到任何解决方案,请帮助我.

解决方法

在使用捆绑之前,我已经体验过了.

比如说你的css文件位于:/Content/css/css.css

然后,这个css文件引用另一个文件,例如通过url(‘../ images / image1.png’)在/Content/images/image1.png上的图像.

然后你设置你的css bundle @ / bundles / css.

在调试模式下都显得很棒.但是,当您在web.config中设置< compilation debug =“false”....时,突然间会在css文件中引用引用.如果您在Firebug / Chrome开发工具中打开控制台,并检查网络选项卡,则会看到资源无法从不正确的URL中加载. 发生这种情况是因为当调试模式关闭时,所有文件都将被捆绑和细化,就像在生产中一样.在这种情况下,CSS文件将从URL / bundles / css捆绑并提供.这导致相对URL引用中断.它曾经引用/Content/images/image1.png,现在引用/images/image1.png. 你有几个选择来解决这个问题:
>从与实际的css文件相同的文件夹中提供捆绑的CSS文件.例如. /内容/ CSS / cssbundle.这可能很快就变得非常繁琐.
>将您的css文件中的所有相对引用更改为绝对引用.例如. ../images/image1.png将成为/Content/images/image1.png.这的确意味着你不能使用很多第三方CSS捆绑开箱即用,如果你想捆绑它们,你必须检查/更改相关引用.
>使用BundleTransformer nuget包.捆绑过程中自动将相对url转换为绝对URL.

The main differences of StyleTransformer and ScriptTransformer classes from a standard implementations: ability to exclude unnecessary assets when adding assets from a directory,does not produce the re-minification of pre-minified assets,support automatic transformation of relative paths to absolute in css-code (by using UrlRewritingCssPostProcessor),etc.

我个人建议3,因为它是最容易长期保持的.

猜你在找的CSS相关文章