aboutsummaryrefslogtreecommitdiffhomepage
path: root/livereload
diff options
context:
space:
mode:
authorsatotake <[email protected]>2022-06-05 15:26:16 +0900
committerBjørn Erik Pedersen <[email protected]>2022-06-05 11:16:24 +0200
commit8e2fd55923a4da38eb2ddda51dc1b96943be0c56 (patch)
treee5b3474eb534f9dd78ce5f01a3a6fcbd64f547c4 /livereload
parent311b8008bfba3411741ef8ebe4b094adb92ce041 (diff)
downloadhugo-8e2fd55923a4da38eb2ddda51dc1b96943be0c56.tar.gz
hugo-8e2fd55923a4da38eb2ddda51dc1b96943be0c56.zip
livereload: Use `X-Forwarded-Host` for Codespace
Codespace has 2 types of usage 1. in browser 2. vscode on local computer As long as you select 2 (on local), Hugo handles livereload expectedly. But if you use it in browser, Hugo does not reload on file change, as #9936 said. This issue happens because `CheckOrigin` always fails. Remote server could rewrite request host name. Fix this by respecting `X-Forwarded-Host` header during origin checking After merging this, you can preview changes lively with codespaece in browser. ```sh hugo server --liveReloadPort 443 ``` Close #9936
Diffstat (limited to 'livereload')
-rw-r--r--livereload/livereload.go8
1 files changed, 7 insertions, 1 deletions
diff --git a/livereload/livereload.go b/livereload/livereload.go
index 145cc25ea..246a7393c 100644
--- a/livereload/livereload.go
+++ b/livereload/livereload.go
@@ -62,7 +62,13 @@ var upgrader = &websocket.Upgrader{
return false
}
- if u.Host == r.Host {
+ rHost := r.Host
+ // For Github codespace in browser #9936
+ if forwardedHost := r.Header.Get("X-Forwarded-Host"); forwardedHost != "" {
+ rHost = forwardedHost
+ }
+
+ if u.Host == rHost {
return true
}