在生产模式下运行瘦服务器没有加载我的资源文件。

9
当我这样加载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

这些文件位于我的public目录下的assets文件夹中。
我也运行了这个命令。
RALS_ENV=production rake assets:precompile

我已经尝试在浏览器中访问文件/public/assets/application.js,如下:

http://localhost:3000/application.js

我的问题是访问一个位于/public/assets文件夹下的文件时出现404错误,但在开发模式下请求该文件时可以读取。有没有人有什么想法?


问题到底是什么 - 缓存未命中吗?(第一次请求文件时可以预期),还是这些文件根本无法访问?它们应该在http://localhost:3000/assets/application.js等位置可用。 - Elad
1个回答

14

默认情况下,在生产环境下(config/environments/production.rb),Rails关闭了静态文件服务:

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

Thin服务器未配置为提供静态资产文件,因此对于您的资产文件的请求失败。


这看起来就像是我需要的修复。一旦我部署到Heroku并确定了,我将把它标记为答案。 - aarona
使用Thin作为服务器是否可行?托管公司建议使用它,并且他们已经向Thin做了代理。它可以工作,但我在某个地方读到它可能不够快。还有Ryan,你是来自Spree的那个人吗? :-) - user2609980
我不会在生产环境中使用Thin,而是会使用Unicorn或Puma。是的,我就是之前来自Spree的Ryan,但现在我在LIFX工作。 - Ryan Bigg
我相信你可以从Unicorn和Puma获得更好的生产速度。 - Ryan Bigg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接