当前位置: 首页 > 知识库问答 >
问题:

无法解析“/fonts/mem”。“D:\Programming\Demos\webpack compact\src”中的woff2“使用绝对路径”

裘嘉木
2023-03-14

我在一个现有的项目中配置Webpack,我避免改变项目结构。在scss文件中,我包括以/开头的文件(例如url('/fonts/mem.woff2')),我相信这是我的问题的原因。

风格。scss

@font-face {
    font-family: 'MyFont';
    src: url('/fonts/mem.woff2') format('woff2'),
      url('/fonts/slick.woff') format('woff');
    font-weight: 600;
    font-style: normal;
}

错误是:

错误:无法解析“/fonts/mem”。woff2'位于D:\Programming\Demos\webpack compact\src的finishWithoutResolve处(D:\Programming\Demos\webpack compact\node\U modules\enhanced resolve\lib\Resolver.js:293:18),位于D:\Programming\Demos\webpack compact\node\U modules\enhanced resolve\lib\Resolver。js:362:15在D:\Programming\Demos\webpack compact\node\u modules\enhanced resolve\lib\Resolver。js:410:5在eval(创建时评估)(D:\Programming\Demos\webpack compact\node\u modules\enhanced resolve\node\u modules\tapable\lib\Hoo在D:\Programming\Demos\webpack compact\node\u modules\enhanced resolve\lib\Resolver.js:410:5在eval(创建时评估(D:\Programming\Demos\webpack compact\node\u modules\enhanced resolve\node\u modules\tapable\lib\Hoo at D:\Programming\Demos\webpack compact\node\u modules\lib\Resolver.j at eval(eval at create(D:\Programming\Demos\webpack compact\node\u modules\enhanced-at D:\Programming\Demos\webpack compact\node\u modules\enhanced resolve\lib\Resolver.j

我的webpack文件如下所示:

module.exports = env => {
const isDev = env.NODE_ENV == 'dev';

return {
    target: 'web',
    mode: 'development',
    devtool: 'inline-source-map',
    entry: {            
        index: path.resolve(__dirname, "src", "index.js")
    },
    output: {
        filename: '[name].js',
        path: path.resolve(__dirname, 'dist'),            
    },
    devServer: {
        contentBase: path.resolve(__dirname, 'dist'),
        port: '8080',
        host: 'localhost',
        hot: true,
        open: true,
        inline: true
    },
    plugins: [
        new CleanWebpackPlugin(),            
        new HtmlWebpackPlugin({
            title: 'Development',
            template: path.resolve(__dirname, "src", "index.html"),
            filename: 'index.html',
        })
    ],
    module:{
        rules: [               
            {
                test: /\.(woff|woff2|eot|ttf|otf)$/,
                loader: 'file-loader',
                options: {
                    name: '[name].[ext]',
                    outputPath: 'fonts/',
                },
            }
            ...

我知道如果我改变字体路径。/它会工作。我的问题是,有没有可能只改变webpack配置,而不是去所有的scss文件,并改变路径的url('/fonts/mem.woff2')?

共有1个答案

松俊美
2023-03-14

我相信这是可能的webpack。NormalModuleReplace ementPlugin.

以下是你如何做到这一点:

plugins: [
 //…
 new webpack.NormalModuleReplacementPlugin(
      /^\/fonts\/mem\.woff2/,
      function (resource) {
        resource.request = resource.request.replace(/^\//, './');
      }
    )
]

由于示例中有两种字体,因此可以应用另一个网页。NormalModuleReplacementPlugin插件。

 类似资料:
  • 问题内容: 节点中是否有类似“ path.resolve”的API?还是有什么可以做的? 例如(nodejs代码): 应该得到: 问题答案: 解决(表示用户的家)是另一回事,通常是由外壳来解决。。 如果要通过Go代码执行此操作,则可以使用该函数获取有关当前用户的详细信息,包括其主文件夹(即)。但是,您仍然必须自己替换它。 原始答案如下。 您可以使用或。 例如: 输出: 您可以使用和从路径中“删除”

  • 为了尝试使用jstl,我用Maven安装了JSTL1.2库。但是,当我通过以下消息运行jsp页面时,“绝对URI:[http://java.sun.com/jsp/jstl/core]不能在web.xml或与此应用程序一起部署的jar文件中解析” 我已经阅读了这个stackoverflow页面,按照我的要求做了,但它并没有解决我的问题。 这是我的web.xml文件中简洁的一部分。 这是我的jsp代

  • 线程“main”java.time.format.DateTimeParseException中出现异常:无法在索引16处解析文本“14:30 Sat 05 May” 任何帮助都很感激。

  • D 编程语言是一种面向对象的多范式系统编程语言。 D 编程实际上是通过重新设计 C++ 编程语言开发的,但它是一种独特的编程语言,它不仅具有 C++ 的某些功能,还具有 Java,C#,Python 和 Ruby 等其他编程语言的一些特性。

  • 当我在spring简单数据库连接代码中定义applicationContext时,我遇到了这个错误。 但是,当我把应用上下文的java(数据库测试onnection.java)驻留,它连接没有任何问题。 线程“main”中的异常org.springframework.beans.factory.BeanDefitionStoreExc0019: IOExc0019从类路径资源[应用程序Contex

  • 本文向大家介绍Linux 相对路径和绝对路径的使用,包括了Linux 相对路径和绝对路径的使用的使用技巧和注意事项,需要的朋友参考一下 01. 概述 绝对路径和相对路径在shell环境中经常遇到,各有用处。有时候相对路径比较方便,有时候绝对路径比较方便。 02. 绝对路径(Absolute Pathname) 绝对路径必定由**/**开头 绝对路径是为档案/文件的所在位置做指向 在任何时候,都可以