当我像这样加载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 :(得分:13)
默认情况下,在生产(config/environments/production.rb
)中关闭提供静态文件的Rails:
# Disable Rails's static asset server (Apache or nginx will already do this)
config.serve_static_assets = false
瘦服务器未配置为提供静态资产,因此对资产的请求失败。