net.http.file: allow for serving requests to static files with cache busting suffixes like /dist/littlejs.js?1117
Some checks are pending
Graphics CI / gg-regressions (push) Waiting to run
vlib modules CI / build-module-docs (push) Waiting to run
Shy and PV CI / v-compiles-puzzle-vibes (push) Waiting to run
sdl CI / v-compiles-sdl-examples (push) Waiting to run
Time CI / time-linux (push) Waiting to run
Time CI / time-macos (push) Waiting to run
Time CI / time-windows (push) Waiting to run
toml CI / toml-module-pass-external-test-suites (push) Waiting to run
Tools CI / tools-linux (clang) (push) Waiting to run
Tools CI / tools-linux (gcc) (push) Waiting to run
Tools CI / tools-linux (tcc) (push) Waiting to run
Tools CI / tools-macos (clang) (push) Waiting to run
Tools CI / tools-windows (gcc) (push) Waiting to run
Tools CI / tools-windows (msvc) (push) Waiting to run
Tools CI / tools-windows (tcc) (push) Waiting to run
Tools CI / tools-docker-ubuntu-musl (push) Waiting to run
vab CI / vab-compiles-v-examples (push) Waiting to run
vab CI / v-compiles-os-android (push) Waiting to run

This commit is contained in:
Delyan Angelov 2025-09-06 15:59:08 +03:00
parent 4665a6f4a8
commit 3080b41687
No known key found for this signature in database
GPG key ID: 66886C0F12D595ED

View file

@ -74,7 +74,7 @@ fn (mut h StaticHttpHandler) handle(req http.Request) http.Response {
defer { defer {
log.info('took: ${sw.elapsed().microseconds():6}µs, status: ${res.status_code}, size: ${res.body.len:9}, url: ${url}') log.info('took: ${sw.elapsed().microseconds():6}µs, status: ${res.status_code}, size: ${res.body.len:9}, url: ${url}')
} }
mut uri_path := url.all_after_first('/').trim_right('/') mut uri_path := url.all_after_first('/').all_before('?').trim_right('/')
requested_file_path := os.norm_path(os.real_path(os.join_path_single(h.params.folder, requested_file_path := os.norm_path(os.real_path(os.join_path_single(h.params.folder,
uri_path))) uri_path)))
if !requested_file_path.starts_with(h.params.folder) { if !requested_file_path.starts_with(h.params.folder) {