javascript - 在 Rails 4.0.1 中添加页面特定的 JS

标签 javascript ruby-on-rails asset-pipeline

我正在尝试在我的 application.js.coffee 中做类似的事情 list 文件

#= require jquery.min
#= require jquery.turbolinks
#= require jquery_ujs
#= require private_pub
#= require turbolinks
#= require ckeditor/init
#= require bootstrap


$ ->
  if $('body').hasClass 'page'
    #= require jquery.parallax-1.1.3
    #= require jquery.scrollTo.min
    #= require jquery.easing.1.3
    #= require waypoints.min
    #= require jquery.mousewheel
    #= require jpreLoader
    #= require custom
    #= require maps
    #= require jquery.flexisel

  else
    #= require jquery.slimscroll.min
    #= require morris
    #= require lanceng
    #= require editable/bootstrap-editable
    #= require editable/rails
    #= require jquery.countdown

这不正确吗?我想添加页面特定的 JS,并且我确信我已经添加了 <%= controller_name %>也在 body 类中,这是我用于页面特定 CSS 的方法。

但是,在我的源代码中我只能看到以下内容:

<!-- Javascript  -->

<script data-turbolinks-track="true" src="/assets/jquery.min.js?body=1"></script>
<script data-turbolinks-track="true" src="/assets/jquery.turbolinks.js?body=1"></script>
<script data-turbolinks-track="true" src="/assets/jquery_ujs.js?body=1"></script>
<script data-turbolinks-track="true" src="/assets/private_pub.js?body=1"></script>
<script data-turbolinks-track="true" src="/assets/turbolinks.js?body=1"></script>
<script data-turbolinks-track="true" src="/assets/ckeditor/init.js?body=1"></script>
<script data-turbolinks-track="true" src="/assets/ckeditor/ckeditor.js?body=1"></script>
<script data-turbolinks-track="true" src="/assets/bootstrap.js?body=1"></script>
<script data-turbolinks-track="true" src="/assets/application.js?body=1"></script>

这个方法不对吗?如果不是那么这样做的方法是什么?

最佳答案

#= require 语句是在代码在页面上运行之前在服务器端运行的处理器,因此即使 jQuery 就绪的 $ -> 函数也无法工作,这是为什么您没有看到页面上包含的任何要求。

我必须在这里停下来,只是说,让 Rails 资源管道将您的 javascript 资源连接并缩小到一个文件中并同时提供所有资源,比让每个页面加载不同的 javascript 好得多文件。原因是,对于用户来说,下载 1 个大文件并将其缓存比每次请求都下载多个文件要好。在移动平台上尤其如此。我强烈建议重新考虑你的策略。

进一步阅读:

关于javascript - 在 Rails 4.0.1 中添加页面特定的 JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24123775/

相关文章:

javascript - Preact 错误 : "objects are not valid as a child. Encountered an object with the keys {}" when using async await in root component

javascript - 函数被调用多次

ruby-on-rails - 用以前的加密设计

ruby-on-rails - Rails 3. 按匹配次数排序(多对多)

ruby-on-rails - rails 3.1 : Sass Import from Lib

jquery - 如何将 jQuery DataTables 导入 Grails 2.4.4

ruby-on-rails - 在 Rails 应用程序中运行 rake 任务

javascript - 在html中添加两个值的结果

javascript - 从下拉列表中加载 geojson 文件

ruby-on-rails - 测试对象是否由 current_user 拥有或创建