Rails 请问 js,css 文件应该怎么 include 进来?

fan124 · 2016年11月17日 · 最后由 huobazi 回复于 2016年11月18日 · 1505 次阅读

我知道 application.js 和 application.css 里只要有 require_tree . 执行时就可以把所有资源文件 include 进来,

但是这是个推荐的做法吗? 因为我觉得每个 view 不需要把所有资源文件都 include 进来,

是不是每个 view 加上 content_for :scripts 各自 include 自己需要的 js,css 而共用的在 application.js 和 application.css 里列出来?

有什么最佳实践吗? 我是新手,请多关照^_^

  • =========================================================
  • 新手问题 2
  • 如果把 js 代码都写到 js 文件里了,在 js 文件里怎么使用 helper?
  • 直接在 js.erb 用 helper 会报错,我知道在 assets.rb 里这样配置是可以的
  • Sprockets::Context.send :include, Rails.application.routes.url_helpers
  • Sprockets::Context.send :include, WelcomeHelper
  • 但是每个 helper 都要这样配置吗?
  • 有没有更好的办法?
  • 还有就是 js.erb 里使用 helper 这种做法有不妥的地方吗?

  • =========================================================

  • 补充

  • <%= javascript_include_tag params[:controller] %>这个东西还是不可取,因为如果是 render 指定过来的 view 的 controller 名不一定是我想要的

参考:Controller Specific Assets

要是 Action Specific Assets 的话我也知道一些方法,但是不敢说是最佳实践,还是等楼下大牛解答吧...

#1 楼 @blacktulip 谢谢,貌似这段<%= javascript_include_tag params[:controller] %> or <%= stylesheet_link_tag params[:controller] %>放倒 layout 里,然后把 require_tree 改用 require_directory 好像好一些了

用 turbolinks 的话,全打一个包里呗。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号