我有一个主文件,它引用了JS和我的网站使用的CSS文件。这些引用指向文件的非压缩版本。现在,当我通过Visual Studio为我的项目点击Publish按钮时,我想更改主文件中的引用以指向JS和CSS的crunched版本。
例如:在开发过程中,如果它指向http://www.example.com/main.js
,则在发布期间它应该将引用更改为http://www.example.com/main_min.js
。有没有办法做到这一点?
另外,在更改引用之前,我需要通过输出压缩的js文件(main_min.js)的工具运行我当前的js文件(main.js)。
对此有任何帮助表示赞赏!
感谢。
答案 0 :(得分:1)
您可以转到项目的属性,然后在“构建事件”选项卡中,在“构建后事件命令行”中输入以下内容:
$(SolutionDir)..\YourJsCruncher.exe $(ProjectDir)\content\js\debug\ $(ProjectDir)\content\js\release\
然后有一个自定义HTML帮助器:
public static MvcHtmlString IncludeJs(this UrlHelper helper, string javascriptFile)
{
#if DEBUG
var subfolder = "debug";
#else
var subfolder = "release";
#endif
var path = helper.Content("~/Content/js/{1}/{2}.js", subfolder, javascriptFile);
return MvcHtmlString.Create(string.Format("<script type=\"text/javascript\" src=\"{0}\"></script>", path));
}
然后在你看来:
<%= Url.IncludeJs("foo.js") %>
答案 1 :(得分:0)
这个问题有你需要的大部分答案:
Concatenate and minify JavaScript on the fly OR at build time - ASP.NET MVC
为一次点击发布自定义publich进程有点棘手。我能回答的最好的是链接到这个博客:http://vishaljoshi.blogspot.com/当我使用一键式发布自定义时,这是我找到最多答案的地方。如果我没记错的话,这不是一件容易的事情,最好将它整合到你的构建过程中,就像我链接的第一个问题中的答案一样。