如果在_document.js
中指定了一个静态文件和字体,我想在其中加上assetPrefix
作为前缀。我当前的next.config.js
如下:
next.config.js
也就是说,我的module.exports = (phase) => {
return withTypescript(
withCSS(
withImages(
withOffline({
env,
useFileSystemPublicRoutes: false,
assetPrefix: isProd ? 'https://d28d4ipdckjadl.cloudfront.net' : '',
inlineImageLimit: 16384,
...
具有如下代码:
_document.js
我认为这可能是webpack的事情,所以我也对其进行了标记。
答案 0 :(得分:1)
根据客户端/服务器端的需求,尝试创建具有publicRuntimeConfig
值的serverRuntimeConfig
和/或assetPrefix
对象。
module.exports = (phase) => {
return withTypescript(
withCSS(
withImages(
withOffline({
env,
useFileSystemPublicRoutes: false,
assetPrefix: isProd ? 'https://d28d4ipdckjadl.cloudfront.net' : '',
publicRuntimeConfig: {
MY_ASSET_PREFIX: isProd ? 'https://d28d4ipdckjadl.cloudfront.net' : ''
},
serverRuntimeConfig: {
MY_ASSET_PREFIX: isProd ? 'https://d28d4ipdckjadl.cloudfront.net' : ''
}
}
然后您可以像这样访问_document.js
中的变量:
import getConfig from 'next/config';
...
const MY_ASSET_PREFIX = getConfig().publicRuntimeConfig.MY_ASSET_PREFIX;