我正在通过我的工作组的 Apache 2.2 服务器反向代理运行Gitlab 。最近,我们想上传一些组徽标作为项目头像。上传全部成功完成(通过 SSH 在目录列表中确认),但图像从未出现 - 相反我们只得到 404。
我们正在使用 Apache 的 mod_proxy 连接到 Unicorn 后端。
我正在通过我的工作组的 Apache 2.2 服务器反向代理运行Gitlab 。最近,我们想上传一些组徽标作为项目头像。上传全部成功完成(通过 SSH 在目录列表中确认),但图像从未出现 - 相反我们只得到 404。
我们正在使用 Apache 的 mod_proxy 连接到 Unicorn 后端。
其实我也有这个问题。您需要在配置中启用静态资产。由于 Gitlab 设计为与 Apache 一起运行,因此他们关闭了 Unicorn 的静态资产共享。要启用它,只需运行
sudo -u git vim /home/git/gitlab/config/environments/production.rb
并在第 12 行左右更改config.serve_static_assets
为 true。事实证明,我们最初(一年多前)使用的 Gitlab 示例 Apache 配置在返回 Unicorn 服务器之前缺少对文件是否存在的检查,并且还缺少不代理某些目录的指令(例如
/uploads
) ,但 Unicorn 服务器未配置为提供这些文件。更新 Apache 配置以匹配最新的示例版本解决了该问题。