Rails 3 - 从开发到生产 - 公共资产404

Sli*_*nky 1 css development-environment production-environment ruby-on-rails-3.1

我将Rails 2.2.2应用程序迁移到Rails 3.1.

在开发模式中:/var/www/project_dir# thin start --ssl 找到并提供所有资产.

当我在生产模式下运行时:/var/www/project_dir# thin start --ssl -e production
所有资产请求(JS,CSS和图像)都返回404.

开发和生产模式中的路径是相同的.

在此输入图像描述

我已经到了我已经用尽所有调试想法的地步,并且没有想法为什么在生产模式下,没有任何资产可以找到.

我确实试图迁移到资产管道,但是这导致了更多我认为我现在无法解决的问题所以我需要通过关闭资产管道来解决这个问题.

欢迎任何和所有的想法,谢谢!

详细信息
Web服务器:精简1.5.0
资产Pipleine:关闭
资产目录:
/ var/www/project_dir/public/images
/ var/www/project_dir/public/javascripts
/ var/www/project_dir/public/stylesheets

生成的资产路径(开发模式)

<script src="/javascripts/jquery.js?1366806358" type="text/javascript"></script>
<script src="/javascripts/jquery-ui.js?1366806358" type="text/javascript"></script>
<script src="/javascripts/jquery.alerts.js?1366806358" type="text/javascript"></script>
<script src="/javascripts/application.js?1366806357" type="text/javascript"></script>
<link href="/stylesheets/jquery-ui.css?1361279500" media="screen" rel="stylesheet" type="text/css" />
<link href="/stylesheets/jquery.alerts.css?1361279500" media="screen" rel="stylesheet" type="text/css" />
<link href="/stylesheets/default.css?1361279499" media="screen" rel="stylesheet" type="text/css" />
Run Code Online (Sandbox Code Playgroud)

生成的资产路径(生产模式)

<script src="/javascripts/jquery.js?1366806358" type="text/javascript"></script>
<script src="/javascripts/jquery-ui.js?1366806358" type="text/javascript"></script>
<script src="/javascripts/jquery.alerts.js?1366806358" type="text/javascript"></script>
<script src="/javascripts/application.js?1366806357" type="text/javascript"></script>
<link href="/stylesheets/jquery-ui.css?1361279500" media="screen" rel="stylesheet" type="text/css" />
<link href="/stylesheets/jquery.alerts.css?1361279500" media="screen" rel="stylesheet" type="text/css" />
<link href="/stylesheets/default.css?1361279499" media="screen" rel="stylesheet" type="text/css" />
Run Code Online (Sandbox Code Playgroud)

Sli*_*nky 8

Apache会自动为您执行此操作,但使用Thin,您需要执行以下操作:

/config/environments/production.rb

将此指令设置为true:

config.serve_static_assets = true
Run Code Online (Sandbox Code Playgroud)

这将使生产模式从/public文件夹中读取资产