【问题标题】:problems including javascript at the end of html问题,包括 html 末尾的 javascript
【发布时间】:2012-05-28 00:23:43
【问题描述】:

我使用的引导模板建议将所有 javascript 文件放在 html 的底部,以便页面加载更快,我认为这是一个好主意。但是一些 js 库希望 jquery 包含在顶部。我很想只把 jquery 放在顶部,但是 rails 资产管道真的想把我所有的 js 混在一起。处理这个问题的最佳方法是什么? 例如,我正在使用 ckeditor,当我执行建议时:

<%= form.cktext_area :notes, :toolbar => 'Full', :width => 800, :height => 400 %>

我在 Chrome 的控制台中得到:“Uncaught ReferenceError: $ is not defined”。

【问题讨论】:

    标签: jquery ruby-on-rails-3 twitter-bootstrap ckeditor asset-pipeline


    【解决方案1】:

    根据https://github.com/galetahub/ckeditor 此处的演示,您可以在模板代码中使用 javascript_include_tag 决定 ckeditor 的 javascript 标记的位置。表单助手应该只输出 HTML。

    有点题外话:如果您发现自己使用越来越多的 javascript 并希望有一种通用的方式来包含脚本和相互依赖的脚本,请查看 requirejs。如果 jquery 是您网站的要求,您甚至可以使用一个名为 requirejs-jquery 的版本。

    【讨论】:

    • 嗯,我可以决定 javascript 的位置,但如果我决定把它放在 html 的末尾(这是 bootstrap 建议的),结果是一个错误。 Requirejs 似乎更像是 sprockets 的替代品,我认为我还没有准备好放弃 sprockets。
    • 您有加载 javascript 的示例页面吗?看看事情的执行顺序会很有帮助。
    • 我不知道,但执行顺序是问题所在。该库不允许在加载资产之前延迟初始化。我希望有人能提出解决方法,但我想我会失望的。
    • 您至少可以粘贴您遇到问题的页面的 HTML 输出吗?基本上只是来自 Firefox 的“查看源代码”。我只是好奇它是如何被加载的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-14
    • 1970-01-01
    • 2021-05-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多