在开发过程中一切都很好——预加载有字体、图像、脚本。但是当我构建生产时,字体不会进入预加载。除了字体什么都有。
render: {
http2: {
push: true,
pushAssets: (req, res, publicPath, preloadFiles) => console.log(preloadFiles)
}
}
Run Code Online (Sandbox Code Playgroud)
dev ( nuxt) 中的输出
[
{
file: 'runtime.js',
extension: 'js',
fileWithoutQuery: 'runtime.js',
asType: 'script'
},
{
file: 'vendors.app.js',
extension: 'js',
fileWithoutQuery: 'vendors.app.js',
asType: 'script'
},
{
file: 'app.js',
extension: 'js',
fileWithoutQuery: 'app.js',
asType: 'script'
},
{
file: 'assets/fonts/Play.woff',
extension: 'woff',
fileWithoutQuery: 'assets/fonts/Play.woff',
asType: 'font'
},
{
file: 'assets/fonts/Play.woff2',
extension: 'woff2',
fileWithoutQuery: 'assets/fonts/Play.woff2',
asType: 'font'
},
{
file: 'pages/index.js',
extension: 'js',
fileWithoutQuery: 'pages/index.js',
asType: 'script'
},
{
file: 'assets/images/logo.svg',
extension: 'svg',
fileWithoutQuery: 'assets/images/logo.svg',
asType: 'image'
},
]
Run Code Online (Sandbox Code Playgroud)
生产产出 ( nuxt build; nuxt start):
[
{
file: '5e0bcb963558b2151b59.js',
extension: 'js',
fileWithoutQuery: '5e0bcb963558b2151b59.js',
asType: 'script'
},
{
file: 'a8df7e6ca1b41b6ba1f3.js',
extension: 'js',
fileWithoutQuery: 'a8df7e6ca1b41b6ba1f3.js',
asType: 'script'
},
{
file: 'da6509a7baaff1386039.js',
extension: 'js',
fileWithoutQuery: 'da6509a7baaff1386039.js',
asType: 'script'
},
{
file: '834b4e9b65d7391ff800.js',
extension: 'js',
fileWithoutQuery: '834b4e9b65d7391ff800.js',
asType: 'script'
},
{
file: 'img/0b5b752.svg',
extension: 'svg',
fileWithoutQuery: 'img/0b5b752.svg',
asType: 'image'
},
]
Run Code Online (Sandbox Code Playgroud)
我想不通。也许有人遇到过这样的问题?如何决定?
我不得不写这篇文字,因为我不能发布这么多代码,我不知道还能说什么。对不起这种作弊
UPD:最小复制的回购https://github.com/NomNes/nuxtjs-fonts-preload-bug.git
那是 vue/nuxt 中的一个错误。如果字体在全局 css 中,则不会包含在 preloadFiles 中。
这是一个可以修复它的 PR -> https://github.com/nuxt/nuxt.js/pull/5436
这里 PR 在 vue -> https://github.com/vuejs/vue/pull/9802
| 归档时间: |
|
| 查看次数: |
9391 次 |
| 最近记录: |