Ruby on rails 在Rails开发中找不到资产404

Ruby on rails 在Rails开发中找不到资产404,ruby-on-rails,asset-pipeline,Ruby On Rails,Asset Pipeline,我不确定我第一次收到这条消息是什么时候,但是错误消息只出现在我的开发服务器上。生产heroku服务器不报告任何内容 Started GET "/assets/bootstrap_and_overrides.css?body=1" for 127.0.0.1 at 2013-06-08 16:57:30 -0700 Served asset /bootstrap_and_overrides.css - 304 Not Modified (0ms) Started GET "/assets/"

我不确定我第一次收到这条消息是什么时候,但是错误消息只出现在我的开发服务器上。生产heroku服务器不报告任何内容

Started GET "/assets/bootstrap_and_overrides.css?body=1" for 127.0.0.1 at 2013-06-08 16:57:30 -0700
Served asset /bootstrap_and_overrides.css - 304 Not Modified (0ms)


Started GET "/assets/" for 127.0.0.1 at 2013-06-08 16:57:30 -0700
Served asset / - 404 Not Found (5ms)

ActionController::RoutingError (No route matches [GET] "/assets"):
  actionpack (3.2.13) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
  actionpack (3.2.13) lib/action_dispatch/middleware/show_exceptions.rb:56:in `call'
  railties (3.2.13) lib/rails/rack/logger.rb:32:in `call_app'
  railties (3.2.13) lib/rails/rack/logger.rb:16:in `block in call'
  activesupport (3.2.13) lib/active_support/tagged_logging.rb:22:in `tagged'
  railties (3.2.13) lib/rails/rack/logger.rb:16:in `call'
  actionpack (3.2.13) lib/action_dispatch/middleware/request_id.rb:22:in `call'
  rack (1.4.5) lib/rack/methodoverride.rb:21:in `call'
  rack (1.4.5) lib/rack/runtime.rb:17:in `call'
  activesupport (3.2.13) lib/active_support/cache/strategy/local_cache.rb:72:in `call'
  rack (1.4.5) lib/rack/lock.rb:15:in `call'
  railties (3.2.13) lib/rails/engine.rb:479:in `call'
  railties (3.2.13) lib/rails/application.rb:223:in `call'
  rack (1.4.5) lib/rack/content_length.rb:14:in `call'
  railties (3.2.13) lib/rails/rack/log_tailer.rb:17:in `call'
  thin (1.5.1) lib/thin/connection.rb:81:in `block in pre_process'
  thin (1.5.1) lib/thin/connection.rb:79:in `catch'
  thin (1.5.1) lib/thin/connection.rb:79:in `pre_process'
  thin (1.5.1) lib/thin/connection.rb:54:in `process'
  thin (1.5.1) lib/thin/connection.rb:39:in `receive_data'
  eventmachine (1.0.3) lib/eventmachine.rb:187:in `run_machine'
  eventmachine (1.0.3) lib/eventmachine.rb:187:in `run'
  thin (1.5.1) lib/thin/backends/base.rb:63:in `start'
  thin (1.5.1) lib/thin/server.rb:159:in `start'
  rack (1.4.5) lib/rack/handler/thin.rb:13:in `run'
  rack (1.4.5) lib/rack/server.rb:268:in `start'
  railties (3.2.13) lib/rails/commands/server.rb:70:in `start'
  railties (3.2.13) lib/rails/commands.rb:55:in `block in <top (required)>'
  railties (3.2.13) lib/rails/commands.rb:50:in `tap'
  railties (3.2.13) lib/rails/commands.rb:50:in `<top (required)>'
  script/rails:6:in `require'
  script/rails:6:in `<main>'
Started GET”/assets/bootstrap_和_overrides.css?body=1“,适用于2013-06-08 16:57:30-0700的127.0.0.1
已服务资产/引导_和_overrides.css-304未修改(0ms)
于2013-06-08 16:57:30-0700开始获取127.0.0.1版本的“/assets/”
服务资产/-404未找到(5ms)
ActionController::RoutingError(没有与[GET]“/assets”匹配的路由):
actionpack(3.2.13)lib/action\u dispatch/middleware/debug\u exceptions.rb:21:in'call'
actionpack(3.2.13)lib/action\u dispatch/middleware/show\u exceptions.rb:56:in'call'
railties(3.2.13)lib/rails/rack/logger.rb:32:in'call_app'
railties(3.2.13)lib/rails/rack/logger.rb:16:in'block in call'
activesupport(3.2.13)lib/active\u support/taged\u logging.rb:22:in'taged'
railties(3.2.13)lib/rails/rack/logger.rb:16:in'call'
actionpack(3.2.13)lib/action\u dispatch/middleware/request\u id.rb:22:in'call'
rack(1.4.5)lib/rack/methodoverride.rb:21:in'call'
rack(1.4.5)lib/rack/runtime.rb:17:in'call'
activesupport(3.2.13)lib/active\u support/cache/strategy/local\u cache.rb:72:in'call'
机架(1.4.5)lib/rack/lock.rb:15:in'call'
railties(3.2.13)lib/rails/engine.rb:479:in'call'
railties(3.2.13)lib/rails/application.rb:223:in'call'
机架(1.4.5)lib/rack/content_length.rb:14:in'call'
railties(3.2.13)lib/rails/rack/log_tailer.rb:17:in'call'
精简(1.5.1)lib/thin/connection.rb:81:in'block in pre_进程'
精简(1.5.1)lib/thin/connection.rb:79:in'catch'
精简(1.5.1)lib/thin/connection.rb:79:in'pre_进程'
精简(1.5.1)lib/thin/connection.rb:54:in'process'
精简(1.5.1)lib/thin/connection.rb:39:in'receive_data'
eventmachine(1.0.3)lib/eventmachine.rb:187:in'run_machine'
eventmachine(1.0.3)lib/eventmachine.rb:187:in'run'
精简(1.5.1)lib/thin/backends/base.rb:63:in'start'
thin(1.5.1)lib/thin/server.rb:159:in'start'
机架(1.4.5)lib/rack/handler/thin.rb:13:in'run'
机架(1.4.5)lib/rack/server.rb:268:in'start'
railties(3.2.13)lib/rails/commands/server.rb:70:in'start'
railties(3.2.13)lib/rails/commands.rb:55:in'block-in'
railties(3.2.13)lib/rails/commands.rb:50:in'tap'
railties(3.2.13)lib/rails/commands.rb:50:in`'
脚本/rails:6:in'require'
脚本/rails:6:in`'

不确定为什么要读取资产目录。但是,您在开发服务器上看不到/assets的原因是rails将在开发模式下为存在的项提供/app/assets/stylesheets中的资产,但是由于没有到/assets的路由(通过
rake routes
检查),您会得到一个错误

在production
rake assets中:在上传到heroku的过程中执行预编译,因此创建并填充dir/public/assets


您可以
rake assets:precompile
在您的开发机器上查看发生了什么情况。

我通过为我的Carrierwave上载添加默认url解决了这个问题。不知何故,当我编辑数据库表时,我删除了一些帖子的相应图片。在开发中,Rails将使用路径
/assets/
。看见