我通过 docker 为 Gogs 项目 ( https://github.com/gogits/gogs ) 下载了一个二进制文件,设置它 (via docker pull gogs/gogs
) 并且服务器按预期工作。现在我正在尝试对 html 进行一些自定义,以使其看起来与我们公司的其他工具一致。查看已部署项目时,感兴趣的资产位于以下目录中:
public/img/*.png
public/css/*.css
templates/*.tmpl
当我更新 时css
,更改立即生效,当我更新时tmpl
,我需要重新启动容器(这意味着 html 是在服务器启动时生成的),public/img/
但是当我更新目录中的任何内容时,我似乎无法获得这些资产完全使用过,我对正在发生的事情一无所知,因为大多数 Web 服务器/框架都将public/img/
其视为一个静态目录,默认情况下其所有内容都是公开可见的。
这是我到目前为止尝试过的方法和结果:
操作:复制一个新的 favicon 图像 (my_favicon.png)public/img/
并更改/templates/base/head.html
为指向它 (/img/my_favicon.png) 而不是原始 (/img/favicon.png),保持原始不变并重新启动容器。
结果:页面加载时图像图标损坏,DOM 检查器说它指向 /img/my_favicon.png 但不显示图像,直接访问该 URL 也不显示图像。
操作:将.tmpl 改回指向原始图像(/img/favicon.png),用新图像覆盖原始图像。我也用主要的 lg-gogs.png 标志试过这个。
结果:页面加载时像以前一样带有损坏的图像图标。
对图像名称的 grep 搜索显示只有我修改的 .tmpl 和 config.codekit 提到了它(我对 CodeKit 一点也不熟悉,但说明声称它只与 git 相关,而不是我,然后离开单独的文件,虽然它似乎描述了所有图像的名称和大小 - 但是我在服务器上没有看到任何其他引用此代码包文件的内容)。
我不知道为什么对 css 和 tmpl 的更改可以正常工作,但是图像会导致这种意外结果。有谁知道发生了什么,为什么服务器不接受图像?