我想在我的ASP.NET WebForms应用程序(VS 2008)中有不同版本的.js JavaScript文件:
在VS 2010中是否可行?
- 完整版,包括注释等
- 压缩版,用于生产
在VS 2010中是否可行?
DEBUG
定义。假设您想在页面上设置它。<% #if DEBUG %>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js"></script>
<% #else %>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<% #endif %>
或者,您可以使用Literal并在代码后端进行切换。
<asp:Literal runat="server" ID="txtScripts" EnableViewState="false" />
protected void Page_Load(object sender, EventArgs e)
{
#if DEBUG
txtScripts.Text = "<script type=\"text/javascript\" src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js\"></script>";
#else
txtScripts.Text = "<script type=\"text/javascript\" src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js\"></script>";
#endif
}
Minifier MyMin = new Minifier();
CodeSettings cs = new CodeSettings();
#if DEBUG
cs.MinifyCode = false;
cs.OutputMode = OutputMode.MultipleLines;
cs.PreserveFunctionNames = true;
cs.RemoveFunctionExpressionNames = false;
cs.RemoveUnneededCode = false;
cs.StripDebugStatements = false;
#else
cs.MinifyCode = true;
cs.OutputMode = OutputMode.SingleLine;
#endif
Write(MyMin.MinifyJavaScript(AllMyJavascript, cs))
我喜欢使用SquishIt库。
该库允许您将CSS和JavaScript保存在多个文件中进行本地开发,并发布单个缩小后的文件以供生产使用。
编辑:此工具允许以编程方式定义要缩小的文件列表。定义此列表的代码嵌入在.aspx文件或MVC视图中的代码块中。运行时会发生两件事:
但是,如果定义了#debug
,则代码会输出原始文件的链接,以便可以使用原始版本的文件进行调试。
它支持CSS和JavaScript的缩小。
有关更多信息,请参阅上面的链接。
Minifier
对象的代码。但我选择了另一个答案。如果你不知道 SquishIt 是什么,你应该看一下:它可以从要缩小的文件列表动态生成缩小文件,并公开生成文件的链接。但如果 #debug 没有定义,则会创建到原始文件的链接。这是一个很好的解决方案。感谢您的帮助! - JotaBeF5
和Ctrl+F5
开始,也通过将解决方案配置设置为发布来开始。在所有情况下,生成的HTML引用完整版本。 - comecme<compiler compilerOptions="/D:DEBUG,TRACE" >
。如果你想要发布版本,就不需要设置这些选项,而是设置<compilation debug="false" >
。 - AristosCtrl+F5
开始,它会取消代码后台内的 DEBUG,但 .aspx 的 DEBUG 由 web.config 确定。对我来说似乎不合逻辑。 - comecme