Ruby on rails 资产管道已断开:未动态编译css和js文件
我启动了一个新的Rails 3.2.5项目,资产管道不再工作。CSS和Javascript文件不再编译 这是尝试生成资产时日志的输出:Ruby on rails 资产管道已断开:未动态编译css和js文件,ruby-on-rails,ruby,asset-pipeline,ruby-on-rails-3.2,Ruby On Rails,Ruby,Asset Pipeline,Ruby On Rails 3.2,我启动了一个新的Rails 3.2.5项目,资产管道不再工作。CSS和Javascript文件不再编译 这是尝试生成资产时日志的输出: Started GET "/assets/application.css?body=1" for 127.0.0.1 at 2012-06-16 23:59:11 -0700 Served asset /application.css - 200 OK (0ms) [2012-06-16 23:59:11] ERROR NoMetho
Started GET "/assets/application.css?body=1" for 127.0.0.1 at 2012-06-16 23:59:11 -0700
Served asset /application.css - 200 OK (0ms)
[2012-06-16 23:59:11] ERROR NoMethodError: undefined method `each' for nil:NilClass
/Users/greg/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rack-1.3.6/lib/rack/handler/webrick.rb:71:in `service'
/Users/greg/.rbenv/versions/1.9.2-p290/lib/ruby/1.9.1/webrick/httpserver.rb:111:in `service'
/Users/greg/.rbenv/versions/1.9.2-p290/lib/ruby/1.9.1/webrick/httpserver.rb:70:in `run'
/Users/greg/.rbenv/versions/1.9.2-p290/lib/ruby/1.9.1/webrick/server.rb:
Started GET "/assets/application.js?body=1" for 127.0.0.1 at 2012-06-16 23:59:11 -0700
Served asset /application.js - 200 OK (0ms)
[2012-06-16 23:59:11] ERROR NoMethodError: undefined method `each' for nil:NilClass
/Users/greg/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rack-1.3.6/lib/rack/handler/webrick.rb:71:in `service'
/Users/greg/.rbenv/versions/1.9.2-p290/lib/ruby/1.9.1/webrick/httpserver.rb:111:in `service'
/Users/greg/.rbenv/versions/1.9.2-p290/lib/ruby/1.9.1/webrick/httpserver.rb:70:in `run'
/Users/greg/.rbenv/versions/1.9.2-p290/lib/ruby/1.9.1/webrick/server.rb:183:in `block in start_thread'
183:in `block in start_thread'
更新:
<!DOCTYPE html>
<html>
<head>
<title>Shorai</title>
<%= csrf_meta_tags %>
</head>
<body id=<%= params[:controller].sub('_controller', '') %>>
<% if current_user %>
<%= current_user.name %>
<%= link_to "Log out", signout_path %>
<% else %>
<%= link_to "Sign in", "/auth/37signals" %>
<% end %>
<%= yield %>
<%= stylesheet_link_tag "application", :media => "all" %>
<%= javascript_include_tag "application" %>
</body>
</html>
更新3:
我不知道是什么原因,有人知道吗?
格雷格我对-v3.2.5也有类似的问题 经过几个小时的调试,我找到了解决办法。这并不伟大,但它让我移动,直到我能解决它,或其他人有更好的运气 我很好奇这个变通方法是否也适用于你Gregory 在config/application.rb中,我必须显式地为我的资产添加加载路径。。。因此:
config.assets.paths << Rails.root.join("app", "assets", "stylesheets")
config.assets.paths << Rails.root.join("app", "assets", "javascripts")
config.assets.paths << Rails.root.join("vendor", "assets", "stylesheets")
config.assets.paths << Rails.root.join("vendor", "assets", "javascripts")
config.assets.paths << Rails.root.join("lib", "assets", "javascripts")
config.assets.paths我也遇到了类似的问题,我通过在开发环境中禁用缓存解决了这个问题。
我认为缓存不能很好地处理动态编译的资产当我使用memcached存储启用缓存(在开发模式下)时,出现了这个错误,但是memcached进程没有运行(Rails 3.2.8,Win7)
因此,解决方案是简单地启动memcached并重新启动Rails服务器。在将memcache激活为缓存存储后,我遇到了类似的问题(config.cache\u store=:dalli\u store
)。我可以通过显式停用Rack::Cache中间件(config.action\u dispatch.Rack\u Cache=nil
)或通过设置
config.action_dispatch.rack_cache = {
:metastore => Dalli::Client.new,
:entitystore => 'file:tmp/cache/rack/body',
:allow_reload => false
}
请参阅。升级到rails 3.2.6,因为3.2.5在许多方面都已损坏…即使使用rails 3.2.6,我仍然存在此问题:(输出看起来就像您在浏览器中访问页面时看到的一样。您是在开发环境中运行还是在生产环境中运行?当您运行rake assets:precompile时会发生什么?我在开发环境中,当我运行rake assets:precompile时,文件被正确编译。您是否使用.css.erb和/或.js.erb文件?或者如果您没有使用memcache存储,请确保使用com.com。)在development.rb
文件中删除config.cache\u store=:mem\u cache\u store
行。
config.action_dispatch.rack_cache = {
:metastore => Dalli::Client.new,
:entitystore => 'file:tmp/cache/rack/body',
:allow_reload => false
}