You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Webpack打包时无法将CSS自动注入cshtml文件的问题求助

你当前配置缺少SCSS编译、CSS提取的相关loader和插件,webpack没有将scss文件处理为独立的CSS资源,因此HtmlWebpackPlugin无法自动注入CSS引用,按以下步骤修改即可:

步骤1:安装缺失依赖

npm install --save-dev sass sass-loader css-loader mini-css-extract-plugin

步骤2:修改webpack配置

2.1 引入CSS提取插件

在配置文件顶部新增引入:

const MiniCssExtractPlugin = require('mini-css-extract-plugin');

2.2 补充output的publicPath配置

确保生成的资源路径匹配ASP.NET Core静态资源规则:

output: {
    filename: '[name].bundle.js',
    path: __dirname + '/wwwroot/dist/',
    chunkFilename: '[id].js',
    publicPath: '~/dist/' // 新增该行
},

2.3 完善SCSS处理规则

替换原有scss测试项的配置:

{
    test: /\.scss$/,
    use: [
        MiniCssExtractPlugin.loader, // 提取CSS为独立文件
        'css-loader', // 处理CSS内部导入、路径解析逻辑
        'sass-loader', // 编译SCSS为标准CSS
        'webpack-import-glob-loader' // 保留原有的glob导入处理能力
    ]
},

2.4 新增CSS提取插件到plugins数组

plugins: [
    new MiniCssExtractPlugin({
        filename: '[name].bundle.css' // 定义生成的CSS文件名规则
    }),
    // 保留你原有的两个HtmlWebpackPlugin配置不变
    new HtmlWebpackPlugin({
        inject: "body",
        filename: "../../Views/Shared/_LoginLayout.cshtml",
        template: "./Views/Shared/_LoginLayout_Template.cshtml"
    }),
    new HtmlWebpackPlugin({
        inject: "body",
        filename: "../../Views/Shared/_Layout.cshtml",
        template: "./Views/Shared/_Layout_Template.cshtml"
    }),
]

验证效果

重新执行webpack构建后,生成的cshtml文件head标签内会自动注入对应的CSS引用:

<link href="~/dist/main.bundle.css" rel="stylesheet">

内容的提问来源于stack exchange,提问作者3xGuy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 08:45:04