Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

230
Views
Cómo forzar actualizaciones/evitar el almacenamiento en caché de HTML de la aplicación web .NET Core que se ejecuta en Linux y está alojada en un servidor proxy inverso nginx

Escribí mi aplicación web en C# usando .NET Core 5.0 MVC. Estoy usando el enrutamiento en el controlador para asignar direcciones URL y servir vistas que usan Razor. Ejecuto la aplicación en un servidor Linux usando el tiempo de ejecución de .Net core y luego alojo la aplicación usando un servidor proxy inverso nginx.

Realizo cambios frecuentes en mi sitio web y se basa en extracciones en tiempo real de mi base de datos para obtener las estadísticas más recientes para mostrar al usuario, por lo que es vital que las vistas que ofrezco estén actualizadas.


PROBLEMA: Por alguna razón, puedo publicar e implementar código nuevo y aparecerá bien en mi escritorio pero no en dispositivos móviles o en los escritorios de mis amigos (a veces sí, a veces no). Puedo ver nuevos cambios si cambio la URL ligeramente como google.com/test a google.com/Test. Mis rutas tampoco distinguen entre mayúsculas y minúsculas, pero todos mis enlaces de SEO/google tienen la versión en minúsculas/en caché.


Después de investigar, llegué a la conclusión de que los diferentes navegadores/aplicaciones están almacenando en caché mi HTML/JS/CSS y no obtienen lo último del servidor.

He intentado lo siguiente :

  • Instalar el paquete NuGet "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" y llamar

     services.AddControllersWithViews().AddRazorRuntimeCompilation();

en mi método ConfigureServices.

  • Agregar lo siguiente a mi archivo de diseño:

     <meta http-equiv="cache-control" content="max-age=0" /> <meta http-equiv="cache-control" content="no-cache, no-store, must-revalidate"> <meta http-equiv="expires" content="-1" /> <meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" /> <meta http-equiv="pragma" content="no-cache" />
  • Agregando esto a las acciones de mi controlador que devuelven las vistas:

     [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
  • Estoy alojando mi servidor de aplicaciones web usando un servidor proxy inverso nginx, e intenté agregar algunas de las cosas que vi en línea para evitar el almacenamiento en caché sin suerte.

Nada ha funcionado consistentemente para mi dispositivo móvil (Android con Chrome).

¿Alguien más ha encontrado esto o posiblemente sabe de una solución?

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

¿Ha intentado usar asp-append-version que proporciona ASP.NET?

Se puede usar de esta manera para css/js

 <link rel="stylesheet" href="~/css/site.css" asp-append-version="true"/>
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!