资产已过滤掉,将无法投放

时间:2014-05-15 08:31:13

标签: javascript ruby-on-rails ruby-on-rails-4

  

资产已滤除且无法投放:将Rails.application.config.assets.precompile += %w( login.js )添加到config/initializers/assets.rb并重新启动您的服务器

当我尝试运行我的应用程序时,我发现上述错误。

<% content_for :javascripts do %>
    <%= javascript_include_tag 'login' %>
<% end %>

我已将所有js文件放在assets/javascripts中,但仍然出现上述错误。

3 个答案:

答案 0 :(得分:8)

您必须在#javascript_include_tag数组中包含#stylesheet_link_tagRails.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']