我将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 /公/图像
在/ 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" />
答案 0 :(得分:8)
Apache会为您自动执行此操作,但使用Thin,您需要执行以下操作:
在/config/environments/production.rb
将此指令设为true:
config.serve_static_assets = true
这将使生产模式能够从/public
文件夹