c# - ver - unir varios js en uno
Error al cargar el recurso: 403 prohibido con.js Optimización (4)
Estoy tratando de minimizar mis archivos .js y .css.
He instalado el Install-Package Microsoft.AspNet.Web.Optimization
BundleTable.EnableOptimizations = true;
vez que activo la optimización con BundleTable.EnableOptimizations = true;
Recibo este error en el cliente:
Error al cargar el recurso: el servidor respondió con un estado de 403 (Prohibido) http://localhost:22773/Content/themes/elevation/v=gnDLBbf1VVRuQDXtIYn1q0P3ICZG7oiwwgxPRbaLvqI1
¿Alguien tiene una idea de lo que estoy haciendo mal?
--- Información de BundleConfig -------------------------------
public class BundleConfig
{
public static void RegisterBundles(BundleCollection bundles)
{
BundleTable.EnableOptimizations = true;
bundles.Add(new ScriptBundle("~/bundles/myJquery").Include(
"~/Scripts/jquery-1.9.1.js",
"~/Scripts/jquery-ui-1.10.1.custom.js",
"~/Scripts/jquery.signalR-1.0.1.js",
"~/Scripts/signalr-hubs.js",
"~/Scripts/Controls/Select/Simple/jquery.ui.selectmenu.js"
));
bundles.Add(new ScriptBundle("~/bundles/shared").Include(
"~/Scripts/global/prototypes.js",
"~/Scripts/global/mathutil.js",
"~/Scripts/global/elevationevents.js"
));
bundles.Add(new ScriptBundle("~/bundles/core").Include(
"~/Scripts/elevation/core/sys.config.js",
"~/Scripts/elevation/core/bays.js",
"~/Scripts/elevation/core/door.js",
"~/Scripts/elevation/core/horiziontal.js",
"~/Scripts/elevation/core/vertical.js"));
bundles.Add(new StyleBundle("~/Content/themes/elevation").Include(
"~/Content/themes/dialogs/dialogs.css",
"~/Content/themes/social/ac/acSocial.css",
"~/Content/themes/elevation/elevation.css"
));
}
}
----------------------------- Todavía no he entendido esto ------------- --------
Estoy usando 2013 .net y iis8 en un sistema operativo windows7
Aquí está mi último error, no puedo sacar mi solución del modo de depuración, porque si lo hago obtengo el error a continuación.
HTTP Error 403.14 - Forbidden
The Web server is configured to not list the contents of this directory.
Most likely causes:
A default document is not configured for the requested URL, and directory browsing is not enabled on the server.
Things you can try:
If you do not want to enable directory browsing, ensure that a default document is configured and that the file exists.
Enable directory browsing.
Go to the IIS Express install directory.
Run appcmd set config /section:system.webServer/directoryBrowse /enabled:true to enable directory browsing at the server level.
Run appcmd set config ["SITE_NAME"] /section:system.webServer/directoryBrowse /enabled:true to enable directory browsing at the site level.
Verify that the configuration/system.webServer/directoryBrowse@enabled attribute is set to true in the site or application configuration file.
Detailed Error Information:
Module DirectoryListingModule
Notification ExecuteRequestHandler
Handler StaticFile
Error Code 0x00000000
Requested URL http://localhost:1499/Content/themes/elevation/?v=aukmuLTC3g_fDko3eWmzqq7A8miRqgsJKXA2GO3w-pg1
Physical Path c:/users/administrator/documents/visual studio 2013/Projects/AlumCloud/AlumCloud/Content/themes/elevation/
Logon Method Anonymous
Logon User Anonymous
Request Tracing Directory C:/Users/Administrator/Documents/IISExpress/TraceLogFiles/ALUMCLOUD(3)
More Information:
This error occurs when a document is not specified in the URL, no default document is specified for the Web site or application, and directory listing is not enabled for the Web site or application. This setting may be disabled on purpose to secure the contents of the server.
View more information »
Aquí está la url creada por iis8 cuando no está en el modo de depuración que produce el error
http://localhost:1499/Content/themes/elevation/?v=aukmuLTC3g_fDko3eWmzqq7A8miRqgsJKXA2GO3w-pg1
Aquí está la url que devuelve el archivo .css real sin ningún error
http://localhost:1499/Content/themes/elevation/elevation.css
¿Está seguro de que debe ser en realidad / elevación / v = gn ... pero no / temas / elevación? V = gnDLBbf (con ? )?
Acabo de tener el mismo problema. En mi caso, la solución fue darle un nombre diferente al paquete de contenido. Creo que eso sucede porque IIS intercepta las solicitudes y trata el nombre del paquete como un directorio y, dado que la carpeta de Contenido realmente existe, devuelve el error prohibido. Por lo tanto, puede cambiar el nombre de ~/Content/themes/elevation
para decir ~/css/themes/elevation
bundles.Add(new StyleBundle("~/css/themes/elevation").Include(
"~/Content/themes/dialogs/dialogs.css",
"~/Content/themes/social/ac/acSocial.css",
"~/Content/themes/elevation/elevation.css"
));
Además, no olvide ajustar su marca / página maestra para usar el nombre del paquete revisado, es decir,
<%: Styles.Render("~/css/themes/elevation") %>
Luego agregue las directivas de ubicación a web.config para permitir el acceso a los paquetes:
<location path="css">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
<location path="bundles">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
Espero que esto ayude.
Como se mencionó en la respuesta aceptada, el nombre del paquete que asignó está en conflicto con una carpeta existente real. Como ejemplo, considere lo siguiente:
bundles.Add(new StyleBundle("~/content/epic").Include(
"~/Content/Epic/StickyFooter.css"));
Me dará el mismo tipo de error señalado por OP:
{myURL}/content/epic/?v=YTZL7Up6r-0uQblkv6unjKN5Nfb3uwtE0bPz9nxbjDc1 Failed to load
Esto se debe a que la ruta virtual que el optimizador está tratando de crear (contenido / épica) es una ruta de carpeta existente en mi sitio (tengo una carpeta en la raíz llamada "contenido" y contiene una carpeta llamada "épica") . Si cambio la ruta de mi paquete a lo siguiente:
bundles.Add(new StyleBundle("~/content/epic2").Include(
"~/Content/Epic/StickyFooter.css"));
El problema ya no existe porque no tengo una carpeta llamada "epic2" dentro de mi carpeta de "contenido".
Contrariamente a la respuesta aceptada, recomendaría no cambiar un directorio de paquete como "~ / Content / a / b /" a "~ / css / a / b" porque hay otro problema potencial que surgirá si sus hojas de estilo contienen referencias relativas a archivos externos.
Considere mi hoja de estilo AjaxLoadAnimation.css que contiene este fragmento de código:
...
background: rgba( 255, 255, 255, .5 ) url(''images/spin.gif'') 50% 50% no-repeat;
...
Para asegurarse de que la referencia funcione para una compilación optimizada y no optimizada, asegúrese de que la ruta para el paquete coincida con la ruta para cada elemento del paquete. Si sus hojas de estilo están en ~ / Content / my / path, su paquete también debe comenzar con ~ / Content / my / path. Para evitar el problema de OP, solo asegúrese de que el nombre ("sharedcss" en mi caso) no coincida con una carpeta existente.
bundles.Add(new StyleBundle("~/Content/my/path/sharedcss").Include(
"~/Content/my/path/bootstrap.css",
"~/Content/my/path/font-awesome.css",
"~/Content/my/path/AjaxLoadAnimation.css"));
Esperemos que esto salve a otras personas de la misma frustración.
debe mantener el nombre del paquete similar a la ruta real de los recursos. de lo contrario, el sistema no puede encontrar recursos cuando se compila con debug=''false''
o BundleTable.EnableOptimizations = true;
. porque el sistema usa el nombre del paquete para generar el enlace para los recursos. por lo que los nombres de sus paquetes deben ser así:
bundles.Add(new ScriptBundle("~/Scripts/myJquery").Include(
"~/Scripts/jquery-1.9.1.js",
"~/Scripts/jquery-ui-1.10.1.custom.js",
"~/Scripts/jquery.signalR-1.0.1.js",
"~/Scripts/signalr-hubs.js",
"~/Scripts/Controls/Select/Simple/jquery.ui.selectmenu.js"
));
bundles.Add(new ScriptBundle("~/Scripts/global/shared").Include(
"~/Scripts/global/prototypes.js",
"~/Scripts/global/mathutil.js",
"~/Scripts/global/elevationevents.js"
));
bundles.Add(new ScriptBundle("~/Scripts/elevation/core/core").Include(
"~/Scripts/elevation/core/sys.config.js",
"~/Scripts/elevation/core/bays.js",
"~/Scripts/elevation/core/door.js",
"~/Scripts/elevation/core/horiziontal.js",
"~/Scripts/elevation/core/vertical.js"
));
bundles.Add(new StyleBundle("~/Content/themes/dialogs/dialog").Include(
"~/Content/themes/dialogs/dialogs.css"
));
bundles.Add(new StyleBundle("~/Content/themes/social/ac/ac").Include(
"~/Content/themes/social/ac/acSocial.css"
));
Editar Esto funcionará en IIS 6. Sin embargo, para IIS 7 o 7.5, la solución es otra cosa. Me enfrenté al mismo problema cuando implementé una aplicación en IIS 7.5. La solución es instalar un hotfix como se describe en ASP.NET MVC 4 en IIS 7.5, devuelve 404. Algo relacionado con la asignación de rutas sin extensión y ASP.NET 4.5 MVC 4 no funciona en Windows Server 2008 IIS 7