首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动作调度::Rails生产环境中的静态

动作调度::Rails生产环境中的静态
EN

Stack Overflow用户
提问于 2015-05-20 16:28:50
回答 1查看 791关注 0票数 0

我希望使用ActionDispatch::Static在公共目录之外的目录中提供静态文件。它在开发中运行得很好,但我似乎无法在生产中获得相同的结果。

我的静态文件在/var/www/mysite.com-static中。在初始化器中,我添加了以下内容:

代码语言:javascript
复制
Rails.application.config.middleware.insert_after Rack::SendFile, ActionDispatch::Static, '/var/www/mysite.com-static'

rake middleware的输出如下:

代码语言:javascript
复制
use Raven::Rack
use Rack::Sendfile
use ActionDispatch::Static
use Rack::Lock
use #<ActiveSupport::Cache::Strategy::LocalCache::Middleware:0x00000005e61130>
use Rack::Runtime
...

为什么我在/var/www/myapp.com-静态中请求的每个页面上都有404 s?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-20 17:12:51

最后,我解决了这个问题,在Rails应用程序的config.ru中添加了中间件。

代码语言:javascript
复制
require ::File.expand_path('../config/environment',  __FILE__)

# Added the following line
use ActionDispatch::Static, '/var/www/myapp.com-static'

run Rails.application

这是因为我在一个初始化器中设置了ActionDispatch::Static的路径,该初始化器是在中间件已经挂载后加载的。如果我正确地配置了我的加载顺序,Rails.application.config.middleware也会工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30355428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档