在我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:precompile
并查看public/assets
文件夹时,我看到它们都是预编译的(例如specific-bfgbfbf4534535.js
)
所以资产实际上是预编译的,但错误说它不是预编译的
在我看来:
<%= javascript_include_tag 'specific/chat/pusher.js' %>