From faa28b5a44912f1c63afddab9396bae9e6fe061c Mon Sep 17 00:00:00 2001 From: wxiaoguang Date: Wed, 19 Jul 2023 00:06:43 +0800 Subject: Move public asset files to the proper directory (#25907) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Move `public/*` to `public/assets/*` Some old PRs (like #15219) introduced inconsistent directory system. For example: why the local directory "public" is accessed by `http://site/assets`? How to serve the ".well-known" files properly in the public directory? For convention rules, the "public" directory is widely used for the website's root directory. It shouldn't be an exception for Gitea. So, this PR makes the things consistent: * `http://site/assets/foo` means `{CustomPath}/public/assets/foo`. * `{CustomPath}/public/.well-known` and `{CustomPath}/public/robots.txt` can be used in the future. This PR is also a prerequisite for a clear solution for: * #21942 * #25892 * discourse.gitea.io: [.well-known path serving custom files behind proxy?](https://discourse.gitea.io/t/well-known-path-serving-custom-files-behind-proxy/5445/1) This PR is breaking for users who have custom "public" files (CSS/JS). After getting approvals, I will update the documents. ---- ## ⚠️ BREAKING ⚠️ If you have files in your "custom/public/" folder, please move them to "custom/public/assets/". --------- Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: Giteabot --- modules/public/public.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'modules/public') diff --git a/modules/public/public.go b/modules/public/public.go index ed38d85cfa..d5f0efb17a 100644 --- a/modules/public/public.go +++ b/modules/public/public.go @@ -73,7 +73,7 @@ func setWellKnownContentType(w http.ResponseWriter, file string) { func handleRequest(w http.ResponseWriter, req *http.Request, fs http.FileSystem, file string) bool { // actually, fs (http.FileSystem) is designed to be a safe interface, relative paths won't bypass its parent directory, it's also fine to do a clean here - f, err := fs.Open(util.PathJoinRelX(file)) + f, err := fs.Open(util.PathJoinRelX("assets", file)) if err != nil { if os.IsNotExist(err) { return false -- cgit v1.2.3