mirror of
https://github.com/go-gitea/gitea.git
synced 2026-07-21 04:02:17 -05:00
Error 404 on /serviceworker.js when serving static resources from reverse proxy #5598
Closed
opened 2025-11-02 06:30:21 -06:00 by GiteaMirror
·
14 comments
No Branch/Tag Specified
main
release/v1.25
release/v1.24
release/v1.23
release/v1.22
release/v1.21
release/v1.20
release/v1.19
release/v1.18
release/v1.17
release/v1.16
release/v1.15
release/v1.14
release/v1.13
release/v1.12
release/v1.11
release/v1.10
release/v1.9
release/v1.8
v1.25.3
v1.25.2
v1.25.1
v1.25.0
v1.24.7
v1.25.0-rc0
v1.26.0-dev
v1.24.6
v1.24.5
v1.24.4
v1.24.3
v1.24.2
v1.24.1
v1.24.0
v1.23.8
v1.24.0-rc0
v1.25.0-dev
v1.23.7
v1.23.6
v1.23.5
v1.23.4
v1.23.3
v1.23.2
v1.23.1
v1.23.0
v1.23.0-rc0
v1.24.0-dev
v1.22.6
v1.22.5
v1.22.4
v1.22.3
v1.22.2
v1.22.1
v1.22.0
v1.23.0-dev
v1.22.0-rc1
v1.21.11
v1.22.0-rc0
v1.21.10
v1.21.9
v1.21.8
v1.21.7
v1.21.6
v1.21.5
v1.21.4
v1.21.3
v1.21.2
v1.20.6
v1.21.1
v1.21.0
v1.21.0-rc2
v1.21.0-rc1
v1.20.5
v1.22.0-dev
v1.21.0-rc0
v1.20.4
v1.20.3
v1.20.2
v1.20.1
v1.20.0
v1.19.4
v1.21.0-dev
v1.20.0-rc2
v1.20.0-rc1
v1.20.0-rc0
v1.19.3
v1.19.2
v1.19.1
v1.19.0
v1.19.0-rc1
v1.20.0-dev
v1.19.0-rc0
v1.18.5
v1.18.4
v1.18.3
v1.18.2
v1.18.1
v1.18.0
v1.17.4
v1.18.0-rc1
v1.19.0-dev
v1.18.0-rc0
v1.17.3
v1.17.2
v1.17.1
v1.17.0
v1.17.0-rc2
v1.16.9
v1.17.0-rc1
v1.18.0-dev
v1.16.8
v1.16.7
v1.16.6
v1.16.5
v1.16.4
v1.16.3
v1.16.2
v1.16.1
v1.16.0
v1.15.11
v1.17.0-dev
v1.16.0-rc1
v1.15.10
v1.15.9
v1.15.8
v1.15.7
v1.15.6
v1.15.5
v1.15.4
v1.15.3
v1.15.2
v1.15.1
v1.14.7
v1.15.0
v1.15.0-rc3
v1.14.6
v1.15.0-rc2
v1.14.5
v1.16.0-dev
v1.15.0-rc1
v1.14.4
v1.14.3
v1.14.2
v1.14.1
v1.14.0
v1.13.7
v1.14.0-rc2
v1.13.6
v1.13.5
v1.14.0-rc1
v1.15.0-dev
v1.13.4
v1.13.3
v1.13.2
v1.13.1
v1.13.0
v1.12.6
v1.13.0-rc2
v1.14.0-dev
v1.13.0-rc1
v1.12.5
v1.12.4
v1.12.3
v1.12.2
v1.12.1
v1.11.8
v1.12.0
v1.11.7
v1.12.0-rc2
v1.11.6
v1.12.0-rc1
v1.13.0-dev
v1.11.5
v1.11.4
v1.11.3
v1.10.6
v1.12.0-dev
v1.11.2
v1.10.5
v1.11.1
v1.10.4
v1.11.0
v1.11.0-rc2
v1.10.3
v1.11.0-rc1
v1.10.2
v1.10.1
v1.10.0
v1.9.6
v1.9.5
v1.10.0-rc2
v1.11.0-dev
v1.10.0-rc1
v1.9.4
v1.9.3
v1.9.2
v1.9.1
v1.9.0
v1.9.0-rc2
v1.10.0-dev
v1.9.0-rc1
v1.8.3
v1.8.2
v1.8.1
v1.8.0
v1.8.0-rc3
v1.7.6
v1.8.0-rc2
v1.7.5
v1.8.0-rc1
v1.9.0-dev
v1.7.4
v1.7.3
v1.7.2
v1.7.1
v1.7.0
v1.7.0-rc3
v1.6.4
v1.7.0-rc2
v1.6.3
v1.7.0-rc1
v1.7.0-dev
v1.6.2
v1.6.1
v1.6.0
v1.6.0-rc2
v1.5.3
v1.6.0-rc1
v1.6.0-dev
v1.5.2
v1.5.1
v1.5.0
v1.5.0-rc2
v1.5.0-rc1
v1.5.0-dev
v1.4.3
v1.4.2
v1.4.1
v1.4.0
v1.4.0-rc3
v1.4.0-rc2
v1.3.3
v1.4.0-rc1
v1.3.2
v1.3.1
v1.3.0
v1.3.0-rc2
v1.3.0-rc1
v1.2.3
v1.2.2
v1.2.1
v1.2.0
v1.2.0-rc3
v1.2.0-rc2
v1.1.4
v1.2.0-rc1
v1.1.3
v1.1.2
v1.1.1
v1.1.0
v1.0.2
v1.0.1
v1.0.0
v0.9.99
Labels
Clear labels
$20
$250
$50
$500
backport/done
💎 Bounty
docs-update-needed
good first issue
hacktoberfest
issue/bounty
issue/confirmed
issue/critical
issue/duplicate
issue/needs-feedback
issue/not-a-bug
issue/regression
issue/stale
issue/workaround
lgtm/need 2
modifies/api
modifies/translation
outdated/backport/v1.18
outdated/theme/markdown
outdated/theme/timetracker
performance/bigrepo
performance/cpu
performance/memory
performance/speed
pr/breaking
proposal/accepted
proposal/rejected
pr/wip
pull-request
reviewed/wontfix
💰 Rewarded
skip-changelog
status/blocked
topic/accessibility
topic/api
topic/authentication
topic/build
topic/code-linting
topic/commit-signing
topic/content-rendering
topic/deployment
topic/distribution
topic/federation
topic/gitea-actions
topic/issues
topic/lfs
topic/mobile
topic/moderation
topic/packages
topic/pr
topic/projects
topic/repo
topic/repo-migration
topic/security
topic/theme
topic/ui
topic/ui-interaction
topic/ux
topic/webhooks
topic/wiki
type/bug
type/deprecation
type/docs
type/enhancement
type/feature
type/miscellaneous
type/proposal
type/question
type/refactoring
type/summary
type/testing
type/upstream
Mirrored from GitHub Pull Request
No labels
Milestone
No items
No Milestone
Projects
Clear projects
No projects
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/gitea#5598
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Originally created by @Bronek on GitHub (Jun 20, 2020).
[x]):Description
As a result of #11577 , the reverse proxy configuration recommended in https://docs.gitea.io/en-us/reverse-proxies/#using-nginx-as-a-reverse-proxy-and-serve-static-resources-directly is no longer correct. This is because Gitea is not using
STATIC_URL_PREFIXforserviceworker.jsfile and the request is instead issued for/serviceworker.js. With the recommended configuration that request will be in turn proxied over to Gitea and then fail, resulting in 404 error.The fix which worked for me was to add this stanza to my Nginx configuration:
I assume this is either:
STATIC_URL_PREFIXshould have been used forserviceworker.jsfile, but isn't.BTW thank you for this awesome project!
...
Screenshots
@silverwind commented on GitHub (Jun 20, 2020):
A Serviceworker must per spec be from first-party origin to work, that's why we have to load it from the main origin instead of
STATIC_URL_PREFIX, even thought its a static asset. See here:https://w3c.github.io/ServiceWorker/#origin-restriction
https://w3c.github.io/ServiceWorker/#path-restriction
Essentially:
I guess we can only update the docs.
@Bronek commented on GitHub (Jun 20, 2020):
Great, thank you! That's what I initially suspected :)
@silverwind commented on GitHub (Jun 20, 2020):
Thought I don't quite understand your issue. If you have
STATIC_URL_PREFIXset with an accomanying rule in nginx, it will be used for all static assets except/serviceworker.jswhich should still go toROOT_URLso no special configuration like above should be needed.@silverwind commented on GitHub (Jun 20, 2020):
I did not look at the code yet but I think it might be happening that if
STATIC_URL_PREFIXis set, the backend might refuse to serve assets fromROOT_URLwhich may be an issue we can probably correct. It likely did work before because/serviceworker.jswas a static route but now is handled just like other assets.@Bronek commented on GitHub (Jun 20, 2020):
Further info: request for
/serviceworker.jsonly fails for authenticated user; it succeeds if main page is opened by un-authenticated user.@Bronek commented on GitHub (Jun 20, 2020):
Correction; not exactly "succeeds", gitea is returning 302 status (rather than 404 for authenticated users). I am yet to find where that 302 redirection leads to.
EDIT: from Chrome developer tools I extracted this (for un-authenticated user):
NB, this request actually gets stalled.
Same from router log:
For authenticated user the following happens:
Same from router log:
@silverwind commented on GitHub (Jun 20, 2020):
I can't quite replicate, I see 200s on
ROOT_URL/serviceworker.jsboth signed in and signed out with such a config:Any other changed settings in your config that might be relevant?
@silverwind commented on GitHub (Jun 20, 2020):
The 302 is a separate issue which is fixed in https://github.com/go-gitea/gitea/pull/11872 but I see I need to pull out that fix separately there.
Still can't explain your 404, what exact gitea version is it and how did you build it?
@Bronek commented on GitHub (Jun 20, 2020):
From
app.ini:From nginx:
NB I redacted actual site with
mysitebecause it is public facing.@Bronek commented on GitHub (Jun 20, 2020):
It is gitea 1.12.0 , built with https://github.com/Bronek/build-gitea
@silverwind commented on GitHub (Jun 20, 2020):
Try changing to just
make buildhere as per this. Runninggeneratetoo soon causes frontend build issues. It was recommended like that once but we had to change it.@silverwind commented on GitHub (Jun 20, 2020):
Opened https://github.com/go-gitea/gitea/pull/11992 to fix the 302 issue.
@Bronek commented on GitHub (Jun 20, 2020):
That fixed it - thank you!
@Bronek commented on GitHub (Jun 20, 2020):
I am not sure if that needs a fix, or is just an artifact of local cache behaviour but I've seen it on 3 different browsers so reporting here:
After succesfull login, the content of
/serviceworker.jsis shown as-if it was the home page (i.e. it is not executed by the browser). This only happens on first-time login. If I logout and login again, the main page looks normal.Access log from gitea:
Chrome developer tools reporting:
EDIT: this appears to have been fixed after I cherry-picked #11992 / #11994