【发布时间】:2013-06-07 22:59:54
【问题描述】:
在我的app/assets/javascripts/specific.js 我有
//= require_tree ./specific
在app/assets/javascripts/specific/chat 我有pusher.js
另外,config/environments/production 我有
config.assets.precompile += %w( specific.js some_other_manifest.js )
但是,当我投入生产(在 heroku 上)时,它仍然抱怨 pusher.js 没有预编译。我在这里做错了什么?
在部署应用程序时,javascript 文件似乎已被编译。
来自 Heroku 日志:
Compiled specific/chat/pusher.js (0ms) (pid 1042)
Compiled specific.js (60ms) (pid 1042)
但是当我去看风景时,
ActionView::Template::Error (specific/chat/pusher.js isn't precompiled):
1: <%= javascript_include_tag 'specific/chat/pusher' %>
2: <%= javascript_include_tag params[:controller] %>
3:
4: <div id="chat-header">
app/views/messages/index.html.erb:1:in `_app_views_messages_index_html_erb___3285714722884343394_70246542189040'
我还尝试将config.assets.precompile .. 选项放在config/application.rb 中,而不是production.rb
相关: Assets say "not precompiled" when they are precompiled
当我运行assets:precompile 并查看public/assets 文件夹时,我看到它们都是预编译的(例如specific-bfgbfbf4534535.js)
所以资产实际上是预编译的,但错误说它没有预编译
在我看来:
<%= javascript_include_tag 'specific/chat/pusher.js' %>
【问题讨论】:
-
我从来没有使用过 Heroku,所以我不知道这里是否有 Heroku 特有的东西。在您的 application.html.erb 中,您是否有一行
javascript_include_tag 'specific.js'? -
它不应该包含在 application.html.erb 中
标签: ruby-on-rails-3 asset-pipeline