资产已滤除且无法投放:将
Rails.application.config.assets.precompile += %w( login.js )
添加到config/initializers/assets.rb
并重新启动您的服务器
当我尝试运行我的应用程序时,我发现上述错误。
<% content_for :javascripts do %>
<%= javascript_include_tag 'login' %>
<% end %>
我已将所有js文件放在assets/javascripts
中,但仍然出现上述错误。
答案 0 :(得分:8)
您必须在#javascript_include_tag
数组中包含#stylesheet_link_tag
和Rails.application.config.assets.precompile
方法中包含的所有js / css文件。
查看config/initializers/assets.rb
(如果不存在则创建)。它应该是这样的:
Rails.application.config.assets.precompile += %w( login.js )
编辑后重启Rails服务器。
顺便说一下,从错误的文本中可以看出这一点。
查看Rails资产管道文档了解详情:http://guides.rubyonrails.org/asset_pipeline.html。
答案 1 :(得分:8)
作为替代解决方案,您还可以在development.rb
上注释掉这一行:
config.assets.raise_runtime_errors
或将其设为false
这将禁用链接运行时错误(&#34;资产已过滤掉,不会被提供,#34; yada yada错误)正在开发中。
请记住,通过执行此操作,您可以屏蔽资产的生产错误:例如。有些资产将用于开发但不用于生产。 (见this)
使用,如果您知道自己在做什么:)
HTH
答案 2 :(得分:2)
我正在做类似的事情,但我已在Production.rb
中添加了我的其他资产config.assets.precompile += ['landing.css', 'landing.js']