【发布时间】:2012-01-31 07:29:24
【问题描述】:
我认为文档http://guides.rubyonrails.org/asset_pipeline.html 需要澄清一下。他们说:
例如,如果生成了一个 ProjectsController,就会有一个新的 文件位于 app/assets/javascripts/projects.js.coffee 和另一个位于 应用程序/资产/样式表/projects.css.scss。你应该把任何 JavaScript 或 CSS 对各自资产中的控制器来说是唯一的 文件,因为这些文件可以为这些控制器加载 使用 等行 或 。
据我了解,在生产模式下,最好将所有 JS 打包到一个优化文件中。我猜这个优化文件的缓存比让页面自己专门加载不同的 JS 文件集更可取。
也许 javascript_include_tag 的目的是为该页面运行一些特定的 javascript。但是,application.js 的默认设置是包含树,其中包含生成的文件。所以我猜这必须调整为不包含任何特定于控制器的 javascript。
这里Using Rails 3.1, where do you put your "page specific" javascript code?的这个答案似乎暗示了一种处理问题的合理方法是将JS特性与div关联起来,当JQuery在页面上看不到div时,什么都不执行。
那么最佳做法是什么?我对控制器特定 div 的理解是否正确?在 application.js 中包含树的默认设置是否与控制器特定 js 的目标冲突?
【问题讨论】:
标签: ruby-on-rails-3.1 asset-pipeline