rails 应用程序(通过 apache 代理)上传目录中的图像丢失

rails 应用程序(通过 apache 代理)上传目录中的图像丢失

我在跑步GitLab通过 Apache 2.2 服务器为我的工作组进行反向代理。最近,我们想上传一些组徽标以用作项目头像。上传全部成功完成(通过 SSH 在目录列表中确认),但图像从未显示 - 相反,我们只收到 404。

我们正在使用 Apache 的 mod_proxy 连接到 Unicorn 后端。

答案1

其实我也遇到过这个问题。你需要在配置中启用静态资产。由于 Gitlab 是设计为与 Apache 一起运行的,因此他们关闭了 Unicorn 的静态资产共享。要启用它,只需运行sudo -u git vim /home/git/gitlab/config/environments/production.rb并在第 12 行左右将其更改config.serve_static_assets为 true。

答案2

事实证明,Gitlab 示例 Apache 配置我们最初使用(一年多以前)在返回 Unicorn 服务器之前缺少对文件是否存在的检查,也缺少不代理某些目录(如/uploads)的指令,但 Unicorn 服务器并未配置为提供这些文件。

更新 Apache 配置以匹配最新示例版本解决了这个问题。

相关内容