有没有一种方法可以缩小.cshtml文件中"@section“标记中的javascript?
发布于 2021-03-09 02:51:14
通常,Asp.net核心应用程序使用BuildBundlerMinifier包来捆绑和缩小静态资产(JavaScript、CSS和图像文件)。因此,要缩小JavaScript标记中的@section Scripts脚本,必须将脚本提取到外部脚本文件中,然后使用BuildBundlerMinifier缩小JS文件。有关使用BuildBundlerMinifier的更多详细信息,请参见ASP.NET核中静态资产的捆绑与缩小。
此外,您还可以尝试使用一些开源包来缩小内联JS。如:WebMarkupMin.
您可以通过NuGet包管理器安装此包(根据应用程序版本选择包版本):

然后,在Startup.cs文件中,在配置方法和ConfigureServices方法中添加app.UseWebMarkupMin();和services.AddWebMarkupMin();,代码如下:
public void ConfigureServices(IServiceCollection services)
{
services.AddRazorPages();
services.AddWebMarkupMin(
options =>
{
options.AllowMinificationInDevelopmentEnvironment = true;
options.AllowCompressionInDevelopmentEnvironment = true;
})
.AddHtmlMinification(
options =>
{
options.MinificationSettings.RemoveRedundantAttributes = true;
options.MinificationSettings.RemoveHttpProtocolFromAttributes = true;
options.MinificationSettings.RemoveHttpsProtocolFromAttributes = true;
})
.AddHttpCompression();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
//Required using WebMarkupMin.AspNetCore5;
app.UseWebMarkupMin();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapRazorPages();
});
}在那之后,JavaScript脚本被缩小了。截图如下:
在此之前:

之后:

发布于 2021-03-09 02:45:08
有相当多的选择,没有更多的细节,很难回答哪一个最适合你。
这些解决方案都不会解析Razor语法,也无法在cshtml文件中的脚本@节块中找到JS代码。如果需要缩小代码,则应该将其放入JS文件,并使用<script src="..">引用它。
选项
Visual工具: BundlerMinifier。使用这个工具,您可以捆绑和缩小CSS和JS文件。作为一次操作(右键单击-> Minify文件)或创建一个bundleconfig.json
链接:https://marketplace.visualstudio.com/items?itemName=MadsKristensen.BundlerMinifier注意:默认情况下,VS 2019年包含此工具,只需要在VS 2017或之前通过市场安装。
其他途径通常涉及NodeJs。
https://stackoverflow.com/questions/66532248
复制相似问题