【发布时间】:2026-02-01 10:05:01
【问题描述】:
我希望使用ActionDispatch::Static 来提供非公共目录中的静态文件。它在开发中完美运行,但我似乎无法在生产中获得相同的结果。
我在/var/www/mysite.com-static 中有我的静态文件。在初始化程序中,我添加了以下内容:
Rails.application.config.middleware.insert_after Rack::SendFile, ActionDispatch::Static, '/var/www/mysite.com-static'
rake middleware的输出如下:
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-static 中请求的每个页面都会收到 404?
【问题讨论】:
-
如果 nginx 服务于您的静态资产,那么您为什么要尝试借助 rails 应用程序来处理它?
-
nginx 在 /var/www/myapp.com/public 中为我的静态资产提供服务。我还想在 /var/www/myapp.com-static 中提供静态资产。据我所知,nginx 只允许你指定一个根目录(不使用位置)。
标签: ruby-on-rails actiondispatch