当我开发应用程序时,我想使用jquery-1.3.2.js,当我部署它时,我想使用jquery-1.3.2.min.js?
在没有手动评论和取消注释的情况下,在两者之间切换的最佳方法是什么。
感谢。
答案 0 :(得分:8)
我有一个HtmlHelper扩展方法来加载我的JavaScript文件。它看起来像这样......
public static string JavascriptTag(this HtmlHelper html, string javascriptName)
{
var format = "<script src=\"/Content/Scripts/{0}.js\" type=\"text/javascript\"></script>\r\n";
#if (!DEBUG)
javascriptName += ".min";
#endif
return string.Format(format, javascriptName);
}
这简称为:
<%= Html.JavascriptTag("jquery-1.3.2") %>
<%= Html.JavascriptTag("general") %>
我可以使用这个约定,因为我还有一个构建任务,它将所有JS文件放在我的内容/脚本目录中,缩小它们然后将.min插入到文件名中。
如果你没有这种奢侈品,你可以使用这样的变体:
public static string JavascriptTag(this HtmlHelper html, string devFileName, string liveFileName)
{
var format = "<script src=\"{0}\" type=\"text/javascript\"></script>\r\n";
var fileNameToUse = devFileName;
#if (!DEBUG)
fileNameToUse = liveFileName;
#endif
return string.Format(format, fileNameToUse );
}
然后可以这样调用:
<%= Html.JavascriptTag("/Content/Scripts/jquery-1.3.2.js", "/Content/Scripts/jquery-1.3.2.min.js") %>
<%= Html.JavascriptTag("/Content/Scripts/general.js", "/Content/Scripts/general.min.js") %>
上述方法的一个额外好处是您可以将CDN用于库,例如
<%= Html.JavascriptTag("/Content/Scripts/jquery-1.8.2.js", "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.2.min.js") %>
答案 1 :(得分:2)
例如,将两个文件命名为jquery.js,并放入一些文件夹(libs) 当你勉强时,不要部署lib文件夹。
答案 2 :(得分:2)
我确信有人可以将这个答案翻译成asp.net:我根据我的项目中定义的APPLICATION_ENVIRONMENT
做一个条件。不确定asp.net中是否有类似的东西,但如果你在生产服务器上,你可以服务.min - 并且在开发/测试机器上你可以提供完整的库。
答案 3 :(得分:1)
如果您以编程方式添加声明,那么最好的方法是使用
#if DEBUG
编译器指令。在DEBUG区域中使用完全展开的库,并在非DEBUG中(当您在发布模式下进行编译以进行发布时)使用.min版本。然后你只需要担心确保在上线时编译Release。
或者,为您的不同版本环境分配.config文件,并在那里指定您的javascript包含。
答案 4 :(得分:0)
您可以将脚本命名为jquery.js。并添加另外两个js文件。首先将命名为jquery.js.debug,其他命名为jquery.js.release。在编译应用程序时使用适当的js文件。
我正在使用它来更改web.config文件。可以创建其他信息here。
答案 5 :(得分:0)
如果您使用的是django,可以使用django-compress自动处理。