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

时间:2013-04-29 17:13:44

标签: css ruby-on-rails-3.1 development-environment production-environment

我将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.

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

enter image description here

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

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

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

详情
Web服务器:瘦1.5.0
资产Pipleine:关闭 资产目录:
在/ var / WWW / PROJECT_DIR /公/图像
在/ var / WWW / PROJECT_DIR /公/ JavaScript的
的/ var / WWW / PROJECT_DIR /公共/样式表

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

<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" />

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

<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" />

1 个答案:

答案 0 :(得分:8)

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

/config/environments/production.rb

将此指令设为true:

config.serve_static_assets = true

这将使生产模式能够从/public文件夹

中读取资产