首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在cshtml文件asp.net核中的Minify javascript

在cshtml文件asp.net核中的Minify javascript
EN

Stack Overflow用户
提问于 2021-03-08 15:09:48
回答 2查看 1.5K关注 0票数 0

有没有一种方法可以缩小.cshtml文件中"@section“标记中的javascript?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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();,代码如下:

代码语言:javascript
复制
    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脚本被缩小了。截图如下:

在此之前:

之后:

票数 3
EN

Stack Overflow用户

发布于 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。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66532248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档