我最近将我的应用程序切换到Rails 3.1并开始使用资产管道。我的所有脚本都在生产中编译成application.js,但并非所有脚本都正常工作。例如,如果您查看http://photoramblr.com/assets/application.js并搜索“twipsy”,您会看到它在那里,但它无效。在home page上,鼠标悬停在图片上会显示工具提示。这在开发中很好用,但不能用于生产。
我的应用程序在Heroku上的Cedar堆栈上提供。
布局/ application.html.erb
<%= stylesheet_link_tag "application" %>
<%= javascript_include_tag "application" %>
的application.js
//= require jquery
//= require jquery_ujs
//= require_self
//= require_tree .
环境/ production.rb
config.serve_static_assets = true
config.static_cache_control = "public, max-age=86400"
config.assets.compress = true
config.assets.compile = false
config.assets.digest = true
application.rb中
require 'rails/all'
if defined?(Bundler)
Bundler.require *Rails.groups(:assets => %w(development test))
# Bundler.require(:default, :assets, Rails.env)
end
我还在为名为“TN3”的图像查看器使用另一个脚本,该脚本也已编译,但在生产中无效。样式表正在编译并且工作得很好。有没有人经历过这样的事情?
我也只是运行Heroku建议的rake assets:precompile
并仍然得到相同的结果......
答案 0 :(得分:2)
好吧,我终于能够通过在application.js文件中指定需要加载的文件来“解决”这个问题:
//= require bootstrap-twipsy
//= require jquery.tn3lite.min
我真的不明白为什么当我//= require_tree .
在那里时这是必要的,但显然那不起作用......?
答案 1 :(得分:0)
检查,在应用程序中的config / environment / production.rb中的设置下面应该是真的
config.assets.compile = true
如果它不适合你,请告诉我