预编译目录中缺少Rails JS文件

时间:2014-09-15 08:10:35

标签: ruby-on-rails ruby-on-rails-4 heroku

我正在Heroku上部署Rails应用程序并使用资产管道从各种文件成功加载我的应用程序的JS和CSS。

我有一组独立的JS文件,每个文件都有静态数据(主要是坐标),只能单独加载,所以我不希望它们成为清单文件的一部分。例如,如果有人访问“new-york”页面,我会加载单个new-york.js,但如果有人访问“chicago”页面,我会加载chicago.js。

这在开发中很有用,但在Heroku上,整个文件目录根本不存在。我得到了404,当我查看所有预编译资产的/ public / assets时,这些文件无处可寻。

如何在Heroku上访问这些文件,或者使用预编译资产显示这些文件,或者直接从他们的lib / assets / javascripts主页访问它们?

请注意,我已经在使用Heroku 12 factor gem。

1 个答案:

答案 0 :(得分:2)

您必须在预编译列表中添加文件夹。

application.rb

config.assets.precompile += %w(new_york.js) #etc...

或者获取文件夹中的每个js文件:

to_precompile = Dir[Rails.root.join("app/assets/javascripts/cities/*.js")].map do |file| 
  "cities/#{ Pathname.new(file).basename }"
end
config.assets.precompile += to_precompile