我正在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。
答案 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