2016-09-18 59 views
0

我有一個文件夾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

有你添加的行'Rails.application.config.assets.precompile + =%W(my_js1.js)'到文件'配置/初始化/ assets.rb'然後重新啓動服務器,因爲它告訴你在錯誤消息中? –

+0

@LukaKerr,重讀我的問題。 – Johshi

+0

什麼rails版本? –

回答

1

我認爲你的問題是你的b變量是絕對路徑,但precompile正在尋找一個相對路徑(相對於你的資產路徑)。如果它不起作用,我會刪除它,但值得一試。

嘗試

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