CSS, imágenes, JS no se cargan en IIS

Todas mis aplicaciones funcionaban bien, pero de repente todos los sitios en IIS no están cargando CSS, imágenes, secuencias de comandos. Redirige a la página de inicio de sesión.

Si inicio sesión, funciona bien. por ejemplo, mysite.com/Account/LogOn?ReturnUrl=%2fpublic%2fimages%2ficons%2f41.png

En mi máquina local funciona bien sin inicio de sesión.

El problema puede ser que IIS no está publicando Contenido estático, que puede configurar aquí: enter image description here

Fuente: http://adilmughal.com/blog/2011/11/iis-7-not-loading-css-and-image/

Tuve el mismo problema, una página no autenticada no cargaría CSS, JS e Imágenes cuando instalé mi aplicación web en ASP.Net 4.5 en IIS 8.5 en Windows Server 2012 R2.

  1. Tenía el rol de contenido estático instalado
  2. Mi aplicación web estaba en la carpeta wwwroot de IIS y todos los permisos de la carpeta de Windows estaban intactos (los predeterminados, incluido IIS_IUSRS)
  3. Agregué la autorización para todas las carpetas que contenían CSS, JS e imágenes.
  4. Tenía la carpeta de la aplicación web en un recurso compartido de Windows, así que eliminé el uso compartido según lo sugerido por @ imran-rashid

Sin embargo, nada parecía resolver el problema. Entonces, finalmente traté de establecer la identidad del usuario anónimo para la Identidad del conjunto de aplicaciones y comenzó a funcionar.

Haga clic en la característica de autenticaciónEdite la Autenticación AnónimaCambiar a Identidad del grupo de aplicaciones

Me golpeé la cabeza por unas horas y espero que esta respuesta salve la agonía de mis compañeros desarrolladores.

Realmente me gustaría saber por qué esto está funcionando. ¿Alguna idea?

Puede que esto no responda tu pregunta, pero me he estado golpeando la cabeza con los mismos síntomas con una nueva instalación de IIS. CSS, JS e imágenes no aparecían. Se debió a que no se instaló el rol de “Contenido estático” en IIS 7.5.

Intente eliminar la sección staticContent de su web.config .

   ...   

Tuve un error similar, mi consola se veía así:

error

Mi problema era que estaba ejecutando mi sitio en una subcarpeta, ya que la empresa usaba un dominio superior y ningún subdominio. Me gusta esto:

host.com/app1

host.com/app2

Mi código se veía así por incluir scripts que funcionaban bien en localhost pero no en app1 o app2:

  

Se agregó un signo de tilde ~ a src y luego todo funcionó:

  

Explicación de ~ vs / :

  • / – raíz del sitio
  • ~/ – Directorio raíz de la aplicación

/ devolverá la raíz del sitio ( http://host.com/ ),

~/ devolverá la raíz de la aplicación ( http://host.com/app1/ ).

Agregue esto a su web.config

        

Fue un problema de permiso de Windows mover la carpeta que hereda los permisos incorrectos. Cuando me muevo a la carpeta wwwroot y agrego permiso a su usuario, comienza a funcionar bien.

Probablemente tenga la autenticación de Windows habilitada en su web.config. En una máquina local, sus credenciales de Windows se pasan automáticamente y funciona. En un sitio en vivo, se le trata como un usuario anónimo (la configuración de IE puede controlar esto, pero no modifique esto a menos que realmente sepa lo que está haciendo).

Esto causa lo siguiente:

  • Debes iniciar sesión explícitamente.
  • Los recursos como scripts y CSS no se sirven en la página de inicio de sesión porque no está autenticado.

Esto no está roto, solo funciona según lo previsto, pero para “arreglarlo” esto:

  • Cambie el tipo de autenticación en el web.config si no desea iniciar sesión.
  • Y / o agregue un web.config en el directorio (s) que contiene CSS, imágenes, scripts, etc. que especifica las reglas de autorización.

Use esto en la sección de configuración de su archivo web.config:

                      

Para mí, agregar esto en web.config resolvió el problema

      

En mi caso,

IIS puede cargar todo con localhost , pero no pudo cargar mis archivos de plantilla app.tag desde 192.168.0.123

porque la extensión .tag no estaba en la lista.

Tipos IIM MIME

Para arreglar esto:

Ir al servicio de información de Internet (IIS)

Haga clic en su sitio web donde está intentando cargar la imagen

En la sección IIS, abra el menú Autenticación y habilite Autenticación de Windows también.

Una sugerencia que encontré útil en el pasado cuando desarrollé sitios en el entorno de prueba localhost cuando trabajo con una copia del sitio de producción. Asegúrese de comentar las tags canónicas:

   

Mi hora de dolor se debió a la definición de tipos MIME en el web.config. Necesitaba esto para el servidor de desarrollo, pero IIS local lo odiaba porque duplicaba los tipos MIME … una vez que los quité de la web. Configuré el problema con js, css e imágenes que no se descargaban.

Una posible causa de esto es que su aplicación espera ejecutarse en el puerto 443 (puerto SSL estándar) y el puerto 443 ya está en uso. Me he encontrado con esto varias veces con los desarrolladores tratando de ejecutar nuestra aplicación mientras Skype se ejecuta en sus computadoras.

Increíblemente, Skype se ejecuta en el puerto 443. Este es un error de diseño horrible en mi opinión. Si ve que su aplicación intenta ejecutarse en 444 en lugar de 443, cierre Skype y el problema desaparecerá.

Si probó todas las soluciones anteriores y todavía tiene problemas, considere usar el método ResolveClientUrl () de ASP.NET.

Un script para Ejemplo:

En lugar de usar

  

Usa el método

  

¡Esta fue mi solución que funcionó para un amigo al que estaba ayudando!