2012-02-01 74 views
8

当我加载thin像这样:运行在生产模式瘦服务器没有加载我的资产

thin start -e production 

,并尝试访问我的网页之一,我得到这个在日志输出:

cache: [GET /] miss 
cache: [GET /assets/main-bd1ef4b153740fb69fd615304b87ad0d.css] miss 
cache: [GET /assets/jqModal-8fa734bf4f58524b2799abd73ab7d34f.css] miss 
cache: [GET /assets/jquery-544665ba1d5b4f793290421aafed85c9.js] miss 
cache: [GET /assets/application-00b97aa2429046c0c43802f07b756b46.js] miss 

这些文件存在于我的assets目录下的public

我已经运行此命令也:

RALS_ENV=production rake assets:precompile 

我已经尝试了访问文件/public/assets/application.js在浏览器这样的:

http://localhost:3000/application.js 

,给了我一个404错误(即使该文件存在于/public/assets中,但在服务器处于开发模式时向文件发出请求时可以读取该文件。

+0

确切的问题是什么 - 存在缓存未命中? (这可以在您第一次请求文件时预期),还是这些文件根本无法访问?他们_应该可以在http:// localhost:3000/assets/application.js等处获得。 – Elad 2012-02-01 19:52:25

回答

13

Rails的提供静态文件在生产中(config/environments/production.rb)默认情况下关闭:

# Disable Rails's static asset server (Apache or nginx will already do this) 
config.serve_static_assets = false 

瘦服务器未配置为服务于静态资产,所以请求你的资产失败。

+0

这看起来像我需要的修复。一旦我部署到heroku并确定知道,我会将其标记为答案。 – DJTripleThreat 2012-02-01 21:04:48

+0

建议使用Thin作为服务器吗?托管公司表示,他们已经向瘦客户提供代理服务。它可以工作,但它可能没有我读的地方那么快。 Ryan,你是Spree的家伙吗? :-) – 2014-09-08 18:25:32

+0

我不会在生产中使用Thin。我会使用独角兽或彪马。是的,我是以前从Spree来的Ryan家伙,但现在我为LIFX工作。 – 2014-09-09 05:28:56

相关问题