2

我曾在我的production.rb此设置:的Rails 3.1.3生产,资产管道:没有路由匹配

config.assets.compile = true 

但在使用最近用户上传的图片中,我仍然得到这个错误

ActionController::RoutingError (No route matches [GET] "/assets... 

我在这里做错了什么?

我已经在生产环境的服务器上测试了这个与乘客一起运行的测试,并且我在本地机器上用WEBrick在生产环境中测试了这一点。

=====解决=======

修好了我的这种设置情况对我production.rb

# Don't fallback to assets pipeline if a precompiled asset is missed 
    config.assets.compile = true 

    # Generate digests for assets URLs 
    config.assets.digest = false 
+1

感谢您回复文档 - 我花了几个小时,直到我看到您的文章。 – jpwynn 2012-04-11 01:26:48

+0

我不认为你从预编译静态资产中获得任何好处。我相信你基本上回退到未预编译的资产,因为它找不到它们。这就像在开发模式下运行你的应用程序。 – henry74 2013-02-07 03:03:20

+0

@ henry74在这种情况下唯一的好处是,在尝试加载最近上传的图像时,我不会收到错误,否则我不得不在每次上传时预先编译资源,这不适用于生产服务器。一个更好的方法是使用一个单独的资产服务器,如亚马逊的S3 Simple Storage Service来提供资产,并将应用程序保留在预编译的内部资产中。 – 2013-02-07 14:50:42

回答

1

,如果你不serve_static_assets这是正常的对我说:

config.serve_static_assets = false 

此行为是默认设置。

+0

但这会搞乱'css'和'js'? – 2012-02-17 16:29:48