Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Phoenix框架中使用webpack提供字体_Webpack_Elixir_Phoenix Framework - Fatal编程技术网

在Phoenix框架中使用webpack提供字体

在Phoenix框架中使用webpack提供字体,webpack,elixir,phoenix-framework,Webpack,Elixir,Phoenix Framework,我将Phoenix 1.4 rc与webpack一起使用(默认情况下)。 我在应用程序中提供字体时遇到问题。 我在assets/fonts文件夹中添加了字体。然后运行它。 像这样抱怨它的网页 ./fonts/dashboard.ttf Module parse failed: Unexpected character '^@' (1:0) You may need an appropriate loader to handle this file type 所以我在谷歌上搜索了

我将Phoenix 1.4 rc与webpack一起使用(默认情况下)。 我在应用程序中提供字体时遇到问题。 我在assets/fonts文件夹中添加了字体。然后运行它。 像这样抱怨它的网页

./fonts/dashboard.ttf
    Module parse failed: Unexpected character '^@' (1:0)
    You may need an appropriate loader to handle this file type
所以我在谷歌上搜索了一下,并在webpack.config.js中添加了这段代码

module: {
    rules: [
      {
        test: /\.js$/,
        exclude: /node_modules/,
        use: {
          loader: "babel-loader"
        }
      },
      {
        test: /\.css$/,
        use: [MiniCssExtractPlugin.loader, "css-loader"]
      },
      {
        test: /\.(eot|svg|ttf|woff|woff2)$/,
        use: ["file-loader"]
      }
    ]
  },
然后运行它。网页上没有抱怨,但当我转到我的应用程序时。上面说

(Phoenix.Router.NoRouteError) no route found for GET /css/b06871f281fee6b241d60582ae9369b9.ttf
Phoenix不会在priv/static文件夹中生成“字体”文件夹

我可以在priv/static/js文件夹中找到字体文件

我认为在webpack.config.js文件中,输出路径是“/priv/static/js”。。那么,我如何才能正确地提供字体文件?我在这里做错了什么?

我只是让它工作了(希望如此),也许不是最好的做法:

由于字体文件进入“/priv/static/js”,我添加了如下“publicPath”,因此可以从.css文件中找到它们:

  output: {
    filename: 'app.js',
    path: path.resolve(__dirname, '../priv/static/js'),
    publicPath: "../js/"  // <-------------------------- added this
  },
输出:{
文件名:“app.js”,
path:path.resolve(uu dirname,'../priv/static/js'),

publicPath:“../js/”/您可以向
文件加载器提供
输出路径,而不是将其放在js文件夹中:

{
  test: /\.(svg|woff2?)$/,
  use: [{
    loader: 'file-loader',
    options : {
      name: '[name].[ext]',
      outputPath: '../fonts',
    }
  }],
},

尝试将它们添加到您的静态文件夹Tae。例如,assets/static/fontsdid您是否将字体添加到assets/static/css文件夹中?我尝试将字体文件夹添加到这两个文件夹中。但我遇到了相同的错误