ASP.NET Optimisation - Groupement

J'ai essayé la nouvelle minification et le groupement de fonctionnalité ASP.NET MVC 4, et il fonctionne très bien aussi longtemps que vous utilisez le dossier par défaut de conventions pour les fichiers css et js.

/Content
/Scripts

J'ai l'habitude de mettre les css et les scripts dans un dossier appelé Statique comme ce

/Static/Css
/Static/Js

J'ai essayé d'enregistrer mon propre faisceaux comme ceci:

public static class BundleCollectionExtensions
{
    public static void RegisterScriptsAndCss(this BundleCollection bundles)
    {
        var bootstrapCss = new Bundle("~/Static/Css", new CssMinify());
        bootstrapCss.AddDirectory("~/Static/Css", "*.css");
        bootstrapCss.AddFile("~/Static/Css/MvcValidation.css");
        bootstrapCss.AddFile("~/Static/Css/bootstrap-responsive.min.css");
        bootstrapCss.AddFile("~/Static/Css/bootstrap.min.css");

        bundles.Add(bootstrapCss);

        var bootstrapJs = new Bundle("~/Static/Js", new JsMinify());
        bootstrapJs.AddDirectory("~/Static/Js", "*.js");
        bootstrapJs.AddFile("~/Static/Js/jquery-1.7.1.min.js");
        bootstrapJs.AddFile("~/Static/Js/jquery.validate.min.js");
        bootstrapJs.AddFile("~/Static/Js/jquery.validate.unobtrusive.min.js");
        bootstrapJs.AddFile("~/Static/Js/bootstrap.min.js");
        bootstrapJs.AddFile("~/Static/Js/gunsforhire.js");

        bundles.Add(bootstrapJs);
    }
}

Et dans

Global.ascx.cs

Je l'ai fait:

BundleTable.Bundles.RegisterScriptsAndCss();

Générés balisage ressemble à ceci:

<link href="/Static/Css?v=D9JdmLZFFwjRwraNKfA1uei_YMoBoqLf-gFc0zHivM41" rel="stylesheet" type="text/css" />

<script src="/Static/Js?v=mbKbf5__802kj-2LS5j9Ba-wvSxBCKNMQGBgzou6iZs1" type="text/javascript"></script>

Toutefois, Il ne fonctionne pas, la requête ressemble à ceci:

Request URL:http://localhost:49603/Static/Js?v=mbKbf5__802kj-2LS5j9Ba-wvSxBCKNMQGBgzou6iZs1
Request Method:GET
Status Code:301 Moved Permanently (from cache)
Query String Parametersview URL encoded
v:mbKbf5__802kj-2LS5j9Ba-wvSxBCKNMQGBgzou6iZs1

Request URL:http://localhost:49603/Static/Js/?v=mbKbf5__802kj-2LS5j9Ba-wvSxBCKNMQGBgzou6iZs1
Request Method:GET
Status Code:404 Not Found
Request Headersview source
Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Host:localhost:49603
Referer:http://localhost:49603/
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko)        Chrome/17.0.963.56 Safari/535.11
Query String Parametersview URL encoded
v:mbKbf5__802kj-2LS5j9Ba-wvSxBCKNMQGBgzou6iZs1
Response Headersview source
Cache-Control:private
Content-Length:4757
Content-Type:text/html; charset=utf-8
Date:Thu, 01 Mar 2012 19:05:44 GMT
Server:Microsoft-IIS/7.5
X-Powered-By:ASP.NET
X-SourceFiles:=?UTF-8?B?   QzpcQENvZGVccGVsbGVccGVsbGVoZW5yaWtzc29uLnNlXHNyY1xXZWJcU3RhdGljXEpzXA==?=

Ce que je fais mal?

Mise à jour

Je pense que j'ai enfin réussi à résoudre ce problème en procédant comme suit:

  1. Retrait de la AddDirectory appels bootstrapCss.AddDirectory("~/Static/Css", "*.css");
  2. Donner les faisceaux des chemins qui ne reflètent pas la vraie structure de répertoire
Qu'entendez-vous par le n ° 2 "de Donner les faisceaux des chemins qui ne reflètent pas la vraie structure de répertoire"?
Si vous avez une structure de répertoire /scripts/app vous ne devriez pas utiliser ce chemin d'accès dans le bundle ("~/scripts/app"). Ou, au moins, j'ai eu quelques problèmes à faire que dans le mvc 4 rc. Peut-être que ce n'est plus un problème.
Salut, avez-vous une idée d'espace de noms qui me manque ? je ne suis pas arriver Addfile ou AddDirectory dans bootstrapcss. ?

OriginalL'auteur Pelle | 2012-03-01