在Phoenix框架中使用webpack提供字体
我将Phoenix 1.4 rc与webpack一起使用(默认情况下)。 我在应用程序中提供字体时遇到问题。 我在assets/fonts文件夹中添加了字体。然后运行它。 像这样抱怨它的网页在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 所以我在谷歌上搜索了
./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文件夹中?我尝试将字体文件夹添加到这两个文件夹中。但我遇到了相同的错误