根据我的理解,所有的JavaScript都合并到一个文件中。默认情况下,当Rails将//= require_tree .
添加到你的application.js
清单文件的底部时,它会这样做。
这听起来像是一个真正的救星,但我有点担心特定于页面的JavaScript代码。这段代码是否在每一页上执行?我想要的最后一件事是当我的所有对象只在1页上需要时,为每一页实例化它们。
此外,代码是否也有可能发生冲突?
还是在页面底部放置一个小的script
标记,只调用一个执行页面javascript代码的方法?
你不再需要require.js了吗?
谢谢
我很欣赏所有的答案…我认为他们并没有真正解决问题。其中一些是关于样式的,似乎没有关联……而其他人只是提到javascript_include_tag
…我知道这是存在的(很明显…),但Rails 3.1的前进方式似乎是将所有JavaScript打包到一个文件中,而不是在每个页面的底部加载单个JavaScript。
我能想到的最好的解决方案是用__abc1或class
es将某些特性包装在div
标记中。在JavaScript代码中,只需检查页面上是否有id
或class
,如果是,则运行与之相关的JavaScript代码。这样,如果动态元素不在页面上,JavaScript代码就不会运行——即使它包含在由Sprockets打包的庞大application.js
文件中。
我上面的解决方案的好处是,如果一个搜索框包含在100个页面中的8个页面上,那么它将只在这8个页面上运行。你也不需要在网站的8个页面上包含相同的代码。事实上,您再也不需要在站点的任何地方包含手动脚本标记。
我想这就是我问题的真正答案。