我的rails 3.1 app在本地运行正常,但是当我在Heroku上运行它时,日志显示Rails没有在vendors/assets/javascripts
目录中找到javascripts,即使手动浏览也可以。
我正在使用plupload-rails3 gem,并且gem的javascripts没有在Heroku上加载,但在我的本地开发机器上加载很好。
在我的assets / javascripts / application.js中,我有:
//= require_tree ../../../vendor/assets/javascripts/plupload-rails3
//= require_tree ../../../vendor/assets/stylesheets/plupload-rails3
//= require_tree ../../../vendor/assets/images/plupload-rails3
当我在Heroku上运行我的应用程序时,日志显示Rails尝试使用令牌标识符加载和失败每个plupload javascripts:
ActionController :: RoutingError(没有路由匹配[GET]“/assets/plupload-rails3/plupload/js/plupload.full-f4741a878138cea127e6b38b6a08cf12.js”):
所以pluopload小部件不会显示在Heroku的页面上(但是当我在本地运行时)。
但是,如果我手动浏览该位置(没有ID令牌):
http://MYAPPNAME.herokuapp.com/assets/plupload-rails3/plupload/js/plupload.full.js 我确实看到了这个文件。
我也试过在本地预编译资产,然后推送到Heroku,结果相同。
因此,我的应用程序中的某些内容被Heroku上的Rails访问供应商/资产管道所打破。
(我在我的production.rb文件中有config.assets.compile = true
。原始设置为false导致应用程序在找不到预编译资产时崩溃,至少现在它没有崩溃,但它忽略了javascript小部件。)
答案 0 :(得分:0)
Application.js是javascript的清单文件,您不希望在其中包含图像或CSS。 vendor / assets / javascripts应该已经在它正在搜索的路径中,所以只包括:
//= require_tree ./plupload-rails3
编辑: 你可以做类似的事情,在application.css中包含css,图像不需要包含在清单中。
查看Rails指南:http://guides.rubyonrails.org/asset_pipeline.html和Ryan Bates Railscast http://railscasts.com/episodes/279-understanding-the-asset-pipeline了解更多信息。
Edit2:只是浏览了宝石,你跑了吗
bundle exec rake plupload_rails3:install_assets
安装资产?如果没有,请运行它,然后尝试上面的代码。