【问题标题】:jQuery plugin fails when bundled in MVCjQuery 插件在 MVC 中捆绑时失败
【发布时间】:2012-10-10 22:14:16
【问题描述】:

我有一个使用 jquery、jquery ui、jquery 验证和 this datetimepicker 插件的 MVC 4 应用程序。这些是使用 MVC 中的捆绑工具添加的。

只要用 F5 运行它就可以正常工作。但是,当我将其部署到服务器时,插件中某处出现脚本错误(对象不支持此操作)。如果我在本地调试它并在 web.config 中设置,那么它会失败并出现同样的错误。

一个区别是,当它在调试中运行时,它没有被捆绑。这会导致问题吗?发生了什么可能导致此错误?

【问题讨论】:

  • 在您的BundleConfig.cs 中添加BundleTable.EnableOptimizations = true;。现在它将在调试中捆绑脚本,并且通常会在捆绑的*.js 文件中将错误发生的时间和原因作为顶部注释输出。
  • @Qmal:我这样做了,它只是把我带到了 Visual Studio 中的违规行,就像我之前在浏览器中所做的那样。我已经仔细阅读了 javascript,但我认为问题不存在。
  • @kettch 我会在我的解决方案中导入这个插件来测试,brb。
  • @kettch 我将这个 (raw.github.com/trentrichardson/jQuery-Timepicker-Addon/master/…) 脚本导入到我的包中,它工作正常,没有错误,并且缩小成功。我错过了什么?这是剧本?如果是这样,错误应该在您的代码中。确保在 jquery 之后加载它。
  • 是的,这就是我使用的脚本。我按以下顺序加载脚本:jQuery、jQueryvalidation、jQueryUI、datetimepicker

标签: jquery jquery-ui asp.net-mvc-4 bundling-and-minification


【解决方案1】:

我偶然发现了同样的问题,然后通过将 .min.js 文件重命名为 .js(删除 .min)解决了问题

【讨论】:

  • 不知道这里的交易是什么,但他最终也是我的情况。在生产中工作,在本地没有工作。
【解决方案2】:

我遇到了同样的问题,并设法隔离了导致捆绑输出中发生错误的代码。

I sent a pull request to the author with the fix.

【讨论】:

    【解决方案3】:

    使用捆绑包时的自动缩小会导致问题。

    如果我直接在我的_layout.cshtml 文件中引用JQuery

    @Scripts.Render("~/Scripts/jquery-1.8.2.min.js")
    

    问题消失了。

    【讨论】:

    • JQuery 不是这里的问题,它是 DateTimePicker 插件。如上面的 cmets 所述,这是此特定插件的一个已知问题。我宁愿捆绑 JQuery 而不必担心硬编码的版本字符串。
    【解决方案4】:

    一个解决方案甚至认为这是一个老问题

    为确保不会发生这种情况,只需确保您的所有 js 函数都以 ; 结尾

    function someName(){
    
    }; <- the important part!
    

    或者你可以删除.js文件中的所有cmets..

    【讨论】:

      猜你喜欢
      • 2015-06-05
      • 2017-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-02
      • 2015-10-19
      相关资源
      最近更新 更多