【问题标题】:switch between jquery-1.3.2.js and jquery-1.3.2.min.js在 jquery-1.3.2.js 和 jquery-1.3.2.min.js 之间切换
【发布时间】:2012-10-25 05:10:30
【问题描述】:

我开发应用的时候想用jquery-1.3.2.js,部署的时候想用jquery-1.3.2.min.js?

在不手动注释和取消注释的情况下在两者之间切换的最佳方法是什么。

谢谢。

【问题讨论】:

  • 你为什么不总是使用最小的?
  • 有时候,我想调试一些jquery函数,我认为non-min的更易读。

标签: jquery asp.net-mvc


【解决方案1】:

我有一个 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") %>

我可以使用这个约定,因为我还有一个构建任务,它将我的 content/scripts 目录中的所有 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") %>

【讨论】:

    【解决方案2】:

    例如,将两个文件命名为 jquery.js,并放入某个文件夹 (libs) 部署时,不要部署 lib 文件夹。

    【讨论】:

      【解决方案3】:

      我确信有人可以将此答案翻译成asp.net:我根据我在项目中定义的APPLICATION_ENVIRONMENT 做了一个条件。不确定 asp.net 中是否有类似的东西,但如果你在生产服务器上,你可以提供 .min - 在开发/测试机器上你可以提供完整的库。

      【讨论】:

        【解决方案4】:

        如果您以编程方式添加声明,那么最好的方法是使用

        #if DEBUG
        

        编译器指令。在 DEBUG 区域使用您完全扩展的库,在非 DEBUG(当您在发布模式下编译时)放置 .min 版本。然后您只需要担心确保在上线时编译 Release。

        或者,为您的不同发布环境设置单独的 .config 文件,并在其中指定您的 javascript 包含。

        MSDN link to compiler directives.

        【讨论】:

        • 这似乎与我在回答中所说的类似。
        • 似乎是。除了我建议 2 个替代方案,我还包括了示例和链接,它们通常更有帮助。这也被标记为 asp.net-mvc,所以我的回答是 .net 特定的。真的,不是那么相似。
        【解决方案5】:

        您可以将脚本命名为 jquery.js。并添加另外两个 js 文件。首先将命名为jquery.js.debug,其他onw jquery.js.release。并且在编译应用程序时使用适当的 js 文件。

        我正在使用它来更改 web.config 文件。更多信息可以建立here

        【讨论】:

          【解决方案6】:

          如果你使用 django,你可以使用 django-compress 自动处理。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-05-20
            • 1970-01-01
            • 2011-10-28
            • 2012-07-19
            • 1970-01-01
            • 2012-08-18
            相关资源
            最近更新 更多