我有一个文件夹my_project/app/my_assets
。这是我的config/initializers/assets.rb
Rails.application.config.assets.paths << Rails.root.join("app", "my_assets")
Dir.glob(Rails.root.join("app", "my_assets", "*")).each do |a|
Rails.application.config.assets.paths << a
Dir.glob(File.join(a, "*")).each do |b|
puts "b: #{b}"
Rails.application.config.assets.precompile << b
end
end
我在application.html.erb
中的代码:
<script src="<%= asset_path('my_js1.js') %>"></script>
该文件已添加到管道中,但我一直有这个错误:
Asset filtered out and will not be served: add `Rails.application.config.assets.precompile += %w( my_js1.js )`
to `config/initializers/assets.rb` and restart your server
我重新启动了服务器,但没有用。
答案 0 :(得分:0)
我认为您的问题是您的b
变量是绝对路径,但precompile
正在寻找相对路径(相对于您的资产路径)。如果它不起作用,我会删除它,但值得一试。
尝试
relative_path = File.basename(b)
# or alternatively b.split("/")[-1]
Rails.application.config.assets.precompile << relative_path