【发布时间】:2015-04-08 14:58:16
【问题描述】:
我正在使用 ASP.NET MVC 5 开发我的网站。我正在使用 Grunt 来缩小我的 CSS 和 JS。一切正常,但如果我正在发布(发布模式)或正在调试(我需要清楚地阅读我的 CSS 和 JS),我需要更改文件的路由源。
类似这样的:
[调试模式]
<script src="scripts/myscript.js"></script>
[发布模式或公开模式]
<script src="dist/myscript.min.js"></script>
我在 StackOverflow(Razor view engine, how to enter preprocessor(#if debug)) 上阅读了这篇文章,我不喜欢建议的解决方案 因为我认为(不确定)加载的 Razon View 将始终在生产中检查服务器是否处于发布或调试模式,我认为没有必要。
有人可以确认我是否正确吗?我需要手动进行更改吗?还有其他解决方案吗?
谢谢!!问候!!
【问题讨论】:
-
考虑编写一个静态帮助函数,返回脚本 URL 路径,该路径从 web.config 文件中读取(并通过构建配置进行适当转换)
-
但是我处理了很多文件......在调试模式下大约有 20 个 JS 和 10 多个 css......
-
您可能只需要帮助程序返回一个字符串部分 URL,因此调试中的 'scripts/' 和发布中的 'dist/'。可能对您的具体情况没有帮助,但我已经看到类似的事情有效。
-
最好阅读documentation。使用捆绑包时,非缩小版本将在调试模式下使用。在发布模式下,如果没有对应的 -min- 文件存在,文件将被缩小。如果 -min- 文件确实存在,则会使用它。
-
concat 文件是什么意思?一个包可以包含多个文件,例如
bundles.Add(new ScriptBundle("~/bundles/myScripts").Include("~/Scripts/myFirstScript.js", "~/Scripts/mySecondScript.js"));在您使用的视图中@Scripts.Render("~/bundles/myScripts")在调试模式下,这两个文件将被渲染。在发布模式下,它们会被框架缩小,但如果Scripts文件夹中还包含myFirstScript-min.js和mySecondScript-min.js,则将使用这些缩小后的文件。
标签: asp.net-mvc razor asp.net-mvc-5 razorengine