style script registerbundles net mvc minification bundleconfig asp and c# asp.net-mvc-4 bundle

script - registerbundles c#



MVC4 Bundles devuelve 404 (4)

Acabo de golpear (y resolver) este problema.

Asegúrese de que la ruta virtual de su paquete no se pueda confundir con un directorio existente o nombre de archivo real. En mi caso, lo codifiqué como:

bundles.Add(new ScriptBundle("~/bundles/main.js").Include( ...

Pero cuando lo cambié a

bundles.Add(new ScriptBundle("~/bundles/main").Include( ...

Todo empezó a funcionar.

Tengo un proyecto que funciona con la agrupación cuando lo ejecutas desde Visual Studio. Sin embargo, después de realizar una implementación, el manejador de paquetes nunca parece recoger la ruta. En su lugar, va al controlador de archivos estáticos, que devuelve una respuesta 404.

¿Algunas ideas? Veo el ensamblaje de optimización en el contenedor del sitio web bajo IIS.

Está utilizando el grupo de aplicaciones 4.0 y el modo integrado.

Me pregunto si alguien tiene alguna idea o sugerencia?

Gracias

----- Actualización basada en preguntas -----

VS2012

targetFramework = "4.5"

También agregué algo de código a la vista para mostrar qué módulos se cargaron y puedo ver el módulo de paquete que se encuentra allí.

BundleConfig es el valor predeterminado que se proporciona al usar la plantilla de proyecto MVC4 de la aplicación de Internet.

El sitio se está implementando en la raíz. Es extraño que cuando configuro EnableOptimizations = true (debido a que se ejecuta en modo de depuración a través de Visual Studio F5), ¡funciona perfectamente! Puedo navegar a content / css y escupe el css combinado.

Lo despliegue y todo lo demás funciona, ¡pero empaquetándolo!


Incluso tengo el mismo error. La adición de <modules runAllManagedModulesForAllRequests="true" /> en <system.webServer> en el archivo web.config solucionó el problema.


Respuesta actualizada el 17/11/2013 Esto se debe a que el enrutamiento MVC predeterminado solo maneja * en lugar de *. *, es decir, applicationhost.config de IIS o IIS Express tiene lo siguiente:

<add name="ExtensionlessUrl-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" responseBufferLimit="0" />

Entonces, para solucionarlo, podemos agregar lo siguiente a web.config:

<system.webServer> <handlers> <add name="UrlRoutingHandler" type="System.Web.Routing.UrlRoutingHandler, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" path="/bundles/*" verb="GET"/> </handlers> </system.webServer>

Para obtener más información, puede consultar lo siguiente: http://weblogs.asp.net/owscott/archive/2013/01/16/handing-mvc-paths-with-dots-in-the-path.aspx ASP.NET MVC url ruta de apoyo (punto)

Respuesta incorrecta anterior: Básicamente, el DOT generalmente no está permitido en la ruta virtual cuando las URL de análisis de IIS. Este enlace mencionó el siguiente parámetro URLScan AllowDotInPath: de forma predeterminada, esta opción está establecida en 0. Si esta opción está establecida en 0, URLScan rechaza cualquier solicitud que contenga múltiples puntos (.). Esto evita los intentos de ocultar las solicitudes de extensiones de nombre de archivo peligrosas al colocar una extensión de nombre de archivo segura en la información de la ruta o en la parte de cadena de consulta de la URL. Por ejemplo, si esta opción se establece en 1, URLScan puede permitir una solicitud de http: // servername / BadFile.exe / SafeFile.htm porque la interpreta como una solicitud de una página HTML, cuando en realidad es una solicitud de archivo ejecutable (.exe) con el nombre de una página HTML en el área PATH_INFO. Cuando esta opción se establece en 0, URLScan también puede denegar las solicitudes de directorios que contienen puntos.


Tuve el mismo problema incluso con la aplicación MVC de muestra. Vi que la plantilla predeterminada incluye la hoja de estilo con el nombre css, que supongo que a IIS no le gusta, lo que resulta en un error 404.

Cambiar el nombre del paquete de css a APPCSS resolverá el problema por mí.