In ASP.NET 5, non esiste un tale metodo Scripts.Render
. Per eseguire il rendering degli script, è possibile utilizzare l'helper del tag di ambiente.
Non è necessario utilizzare l'helper del tag di ambiente. Puoi mettere direttamente i tag script nel file di layout. Ma gli helper per l'ambiente ci consentono di eseguire il rendering condizionato degli script in base all'ambiente. (Versione con bundle miniato vs All Un minified versione)
Ecco la sintassi, è possibile includere questo nel file di layout.
<environment names="Development">
<script src="~/lib/jquery/dist/jquery.js"></script>
<script src="~/js/d3.js"></script>
</environment>
<environment names="Staging,Production">
<script src="//ajax.aspnetcdn.com/ajax/jquery/jquery-2.1.4.min.js"
asp-fallback-src="~/lib/jquery/dist/jquery.min.js"
asp-fallback-test="window.jQuery">
</script>
<script src="~/js/d3.min.js" asp-file-version="true"></script>
</environment>
Supponendo di avere file di script d3.js
and d3.min.js
esistono nel ~/js
directory.
Inoltre è necessario assicurarsi che avete invocato il metodo UseStaticFiles()
all'interno del metodo Configure()
(all'interno Startup.cs)
public void Configure(IApplicationBuilder app, IHostingEnvironment env,
ILoggerFactory loggerFactory)
{
//Other configuration goes here
app.UseStaticFiles(); // This enables static file serving from the app.
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
UseStaticFiles()
metodo di estensione consente di file statico che serve, tra cui js file, file CSS ecc ..
Quando si esegue l'applicazione in modalità Sviluppo, verranno visualizzati i tag di script nell'ambiente "Development"
e quando lo si esegue in Staging o Production, verranno visualizzati i tag di script sotto Ambiente "Staging,Production"
.
È possibile modificare il valore di ambiente facendo clic destro sul progetto e selezionare properties->Debug
e specificare il valore della variabile d'ambiente Hosting:Environment
Si può vedere che ho incluso la versione minified di file JS nella messa in scena/Produzione enviornment. Questo non è necessario ma è un approccio preferenziale in quanto consente di risparmiare un po 'di banda. (È possibile inserire la versione non minificata anche lì invece di minifrata se si vuole veramente farlo.). Se si dispone di un singolo file in bundle, è possibile utilizzarlo anche qui anziché singoli file.
Se non si dispone già di una versione minificata, è possibile generarla eseguendo l'attività di gulp per la minificazione (inclusa nel file gulp.js
predefinito che si trova nel nuovo modello di app Web). Devi solo aprire il task runner ed eseguire l'attività di minification.
Se non si desidera eseguire manualmente questo ogni volta, è possibile selezionare Bindings -> Before build
in modo che questo verrà eseguito automaticamente che purticular gulp compito ogni volta che si genera il progetto.
Risposta stupenda bw :) –
Sembra che Microsoft si sia spostata da Gulp, almeno per impostazione predefinita. I progetti di template ora fanno affidamento sullo strumento 'BundlerMinifier.Core', come descritto in https://docs.microsoft.com/en-us/aspnet/core/migration/mvc –