鉴于此设置:
字体/ Styles.css中
@font-face { family: 'MyFont'; src: url('fonts/myfont.otf'); }
我怎么能够:
>在我的JS包中,获取对CSS文件的URL的引用,作为字符串,例如,[名称].[散列]的CSS
>生成的CSS文件应该是一个普通的CSS文件,但是url()指向生成的webfont文件?
就像是:
@font-face { family: 'MyFont'; src: url('myfont.dds9394u329d9sa9r8439.otf'); }
我正在尝试:
webpack.config.js
{ test: /\.(woff|woff2|eot|ttf|otf|svg)$/,loader: 'file-loader',include: [/fonts/] },{ test: /\.css$/,use: ['file-loader','css-loader'],include: [/fonts/] }
JS文件
const myfont = { family: 'MyFont',stylesheet: require('fonts/styles.css') }
根据a previous question,使用file-loader和require()可以很好地获取CSS的URL,但生成的文件不是纯CSS.
如何组合文件加载器和css-loader(可能还有其他加载器)来获取这个CSS文件?
谢谢!
附:我想避免使用copy-webpack-plugin,因为我希望CSS / font文件可以在代码中进行哈希处理和寻址.
解决方法
对于后代:这是Webpack配置,我可以通过它获得我正在寻找的结果.
module: { rules: { // Font stylesheets { test: /\.css$/,use: [ { loader: 'file-loader',options: { name: 'css/[hash].[ext]' } },'extract-loader','css-loader','postcss-loader' ],include: [/fonts/] },// Font files { test: /\.(woff|woff2|ttf|otf)$/,include: [/fonts/],options: { name: '[hash].[ext]',outputPath: 'css/',publicPath: url => '../css/' + url } },} }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。