Ich denke, der Grund der bower_components Ordner verlassen wurde und nun verwendet wwwroot/lib ist, denn egal ob in dev oder Produktion statische Dateien müssen unter wwwroot sonst nach jedem Bearbeiten einer Datei, die Sie erneut ausführen müssen leben Taskrunner zu kopieren die Datei unter wwwroot. Es ist ein effizienterer Workflow, wenn sowohl die Entwickler- als auch die Produktionsversion der Dateien unterhalb von wwwroot liegt. Auf diese Weise können Sie die Seite bearbeiten und aktualisieren, anstatt run taskrunner zu bearbeiten und dann die Seite zu aktualisieren.
Was ich vorschlage, ist Grunt Prozessdateien in einen anderen Ordner wie wwwroot/js beim Erstellen verkleinerte/verarbeitete Produktionsversionen Ihrer Dateien.
Dann könnte der Ordner wwwroot/lib sogar von der Veröffentlichung ausgeschlossen werden, da nur dev-Versionen von Bibliotheksskripts dort existieren würden.
Ich denke, meine eigenen benutzerdefinierten Skripts, die nicht bower Komponenten sind, sollten nicht unter wwwroot/lib leben, also vielleicht lege ich die unminifizierten unter wwwroot/dev und verarbeiten alle Produktionsmaterialien unter wwwroot/js, so dass in der Produktion ich Stellen Sie nur den Ordner wwwroot/js bereit, der die vereinheitlichten/kombinierten Dateien der Produktionsversion enthält. Also machen wir grundsätzlich unsere eigenen Bündel.
Die neue Umgebung Tags und und das Skript taghelper es möglich machen, einfach für Entwickler und die Produktion in anderen Dateispeicherort zu zeigen, wie in diesem Beispiel zu sehen:
<environment names="Development">
<script src="~/lib/jquery-validation/jquery.validate.js"></script>
<script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js"></script>
</environment>
<environment names="Staging,Production">
<script src="//ajax.aspnetcdn.com/ajax/jquery.validation/1.11.1/jquery.validate.min.js"
asp-fallback-src="~/js/lib/jquery-validation/jquery.validate.js"
asp-fallback-test="window.jquery && window.jquery.validator">
</script>
<script src="//ajax.aspnetcdn.com/ajax/mvc/5.2.3/jquery.validate.unobtrusive.min.js"
asp-fallback-src="~/js/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js"
asp-fallback-test="window.jquery && window.jquery.validator && window.jquery.validator.unobtrusive">
</script>
</environment>
So können Sie einfache Möglichkeiten, eine CDN zu verwenden, in Produktion. Beachten Sie, dass Sie bei nicht-cdn-Dateien nirgendwo anders als wwwroot oder einem anderen Ordner darunter zeigen können, dass Dateien in einem bower_components-Ordner außerhalb von wwwroot nicht auf Skripts verweisen, sodass es keinen Sinn macht, Dateien dorthin zu stellen.
Wenn ich Skriptverknüpfungen zur dev-Version meiner benutzerdefinierten Skripte mache, verwende ich gerne das neue Taghelper-Attribut asp-append-version = "true", das einen Hash des Dateiinhalts an die URL anhängt, um sicherzustellen, dass der vorherige Browser zwischengespeichert wird wird jedes Mal umgangen, wenn die Datei bearbeitet oder geändert wird. Und das passiert, ohne dass ich den Taskrunner ausführen muss. Ich bearbeite und aktualisiere die Seite.
Also zusammenfassend mit allen Skripten unter wwwroot ist ein besserer Workflow als sie an anderer Stelle und müssen taskrunner ausführen, um sie nach jeder Bearbeitung zu verschieben.Wenn Sie nicht die gesamte zusätzliche Datei von unten wwwroot/lib bereitstellen möchten, verarbeiten Sie das, was Sie möchten, in einen anderen Ordner mit taskrunner, so wie Sie es tun müssten, wenn sie sich außerhalb von wwwroot in einem bower_components-Ordner befänden in frühen Betas sein. Und schließen Sie wwwroot/lib von der Veröffentlichung mit publishExclude in der project.json Ihrer Web-App aus.
Ich würde lieber eine '.bowerrc' Datei verwenden, die auf' wwwroot/lib' verweist, zusammen mit Bower's 'exportsOverride' Funktion als manuelles Verwalten verschiedener Hersteller-Assets mit einer Vielzahl von Schluck/Grunt Aufgaben, besonders wenn einige Anbieter folgen verschiedene oder nicht standardisierte Dist-Strukturen. – sgbj
Tnx für die Einsicht in 'exportsOverride'. Obwohl es scheint nicht für die neueste Beta zu arbeiten: http://stackoverflow.com/questions/32678101/bower-exportoverride-doesnt-work-on-asp-net-5-beta7 –
Neugierig, was ist 'exportsOverride'? Ist es eine eingebaute Funktion der Laube? Ich frage das, weil ich zuvor 'Main-Bower-Dateien' verwendet habe, um ähnliche Verhaltensweisen zu erreichen. –