[Bug]: F-28 Behind Caddy (and nginx without the documented rules) every page load downloads 11 MB of JavaScript and CSS
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 70/100
- Tipo de issue
- Documentación
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- nginx
- Área
- documentation
Línea de trabajo
Empieza con docs/nextcloud-perf.caddy, el fragmento de configuración de Caddy mencionado en el issue, y comprueba cómo su comparador de archivos distingue los recursos en disco de las rutas PHP. Verifica el comportamiento documentado de almacenamiento en caché y compresión para los recursos versionados y los dos tipos de rutas de ejemplo; la tarea estará terminada cuando la guía evite aplicar encabezados de caché de larga duración a las respuestas generadas por PHP y documente las reglas de rendimiento.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
⚠️ This issue respects the following points: ⚠️
- This is not a troubleshooting question, general support matter, or webserver/proxy problem, but likely a bug (if unsure, ask the Community Help Forum).
- This issue is not already reported on Github OR solved at the Community Help Forum (I've searched!).
- I'm using a maintained major version of Nextcloud Server and tested against the latest patch level. (Supported major versions and current patch levels).
- I agree to follow Nextcloud's Code of Conduct.
- I've tried my best to provide clear reproduction steps that someone unfamiliar with this bug could use to reproduce it.
Bug description
F-28 · Behind Caddy (and nginx without the documented rules) every page load downloads 11 MB of JavaScript and CSS
| Severity | Performance (deployment; the slowest part of the web UI on remote connections) |
| Component | web server configuration, .htaccess equivalents |
| Affects | installations not served by Apache, e.g. nextcloud:fpm with Caddy |
| Verified | Measured with a browser against Caddy with and without the rules |
Measurement (Files app, 50 Mbit/s, 20 ms latency)
| without | with compression and caching | |
|---|---|---|
| Transferred on the first visit | 11.0 MB | 2.7 MB |
| Time until the file list shows | 3.7 s | 2.2 s |
core-common.js |
5.7 MB | 1.2 MB (zstd) |
Without Cache-Control, browsers revalidate or download the 65 scripts and 45 stylesheets again.
Apache gets these rules from .htaccess (max-age=15778463, immutable for versioned assets);
Caddy and nginx need them in their own configuration. With encode zstd gzip the bundles shrink to
a quarter.
The rules must only match files that exist on disk (Caddy file matcher), as FilesMatch does in
Apache. A plain path *.css matcher also hits PHP routes such as /apps/theming/theme/default.css
and /apps/theming/img/core/filetypes/*.svg. Caddy then sends a second Cache-Control header
next to the one from PHP (private, max-age=86400, must-revalidate), and browsers cache the theme
CSS for half a year. The snippet in docs/nextcloud-perf.caddy uses the file matcher and was
checked against both kinds of URL.
Steps to reproduce
see the top
Expected behavior
see the top
Nextcloud Server version
35
Operating system
No response
PHP engine version
No response
Web server
No response
Database engine version
No response
Is this bug present after an update or on a fresh install?
No response
Are you using the Nextcloud Server Encryption module?
No response
What user-backends are you using?
- Default user-backend (database)
- LDAP/ Active Directory
- SSO - SAML
- Other
Configuration report
List of activated Apps
Nextcloud Signing status
Nextcloud Logs
Additional info
No response
- Lenguaje dominante
- JavaScript
- Estrellas
- 632
- Forks
- 2.5k
- Merge medio
- 1 d 1 h
- PR fusionados (30 d)
- 70
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de nextcloud/documentation
-
0. needs triage enhancement manual: developer security
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
nextcloud/documentation#15693 ·
Los mantenedores suelen responder en 1 día
-
0. needs triage bug developer experience manual: developer
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
nextcloud/documentation#15690 ·
Los mantenedores suelen responder en 1 día
-
Developer manual: mention the org's appstore-build-publish workflowPosiblemente ocupada @whoalin1 la tomó hace 3 días. Abierto0. needs triage developer experience enhancement good first issue manual: developer
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
nextcloud/documentation#15687 ·
Los mantenedores suelen responder en 1 día
-
Developer manual: recommend a SECURITY.md in publishing.rstPosiblemente ocupada @whoalin1 la tomó hace 3 días. Abierto0. needs triage enhancement good first issue manual: developer security
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
nextcloud/documentation#15686 ·
Los mantenedores suelen responder en 1 día
-
Developer manual: what to clean up on uninstall in repair.rstPosiblemente ocupada @whoalin1 la tomó hace 3 días. Abierto0. needs triage enhancement good first issue manual: developer
Dificultad 1/5 1-3 horas Aptitud para principiantes 88/100
nextcloud/documentation#15685 ·
Los mantenedores suelen responder en 1 día
Todos los issues de nextcloud/documentation
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
processing/p5.sound.js#123 ·
-
Dificultad 1/5 1-3 horas Aptitud para principiantes 82/100
PhilflowIO/dav-mcp#146 ·
Los mantenedores suelen responder en 1 día
-
Add a light/dark theme toggleAbiertogood first issue hacktoberfest
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Tanishq964/trail-kit.#4 ·
-
Request: <brand-name>Abiertonew icon permissions in review
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
simple-icons/simple-icons#15067 ·
Los mantenedores suelen responder en 1 día
-
status: needs triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
mastra-ai/mastra#26562 · 1 comentario · 1 reacción ·
Los mantenedores suelen responder en 1 día