资产已过滤掉,尽管已将其添加到管道中

时间:2016-09-18 01:10:03

标签: ruby-on-rails ruby ruby-on-rails-4 asset-pipeline

我有一个文件夹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

我重新启动了服务器,但没有用。

1 个答案:

答案 0 :(得分:0)

我认为您的问题是您的b变量是绝对路径,但precompile正在寻找相对路径(相对于您的资产路径)。如果它不起作用,我会删除它,但值得一试。

尝试

relative_path = File.basename(b)
# or alternatively b.split("/")[-1]
Rails.application.config.assets.precompile << relative_path