Reactjs 有了NextJS,我想从next.config.js以编程方式访问assetPrefix
我在我的Reactjs 有了NextJS,我想从next.config.js以编程方式访问assetPrefix,reactjs,webpack,next.js,Reactjs,Webpack,Next.js,我在我的\u document.js中包含了几个静态文件和字体,如果在next.config.js中指定了这些文件和字体,我想将它们作为前缀添加到assetPrefix。我当前的next.config.js如下所示: module.exports = (phase) => { return withTypescript( withCSS( withImages( withOffl
\u document.js
中包含了几个静态文件和字体,如果在next.config.js
中指定了这些文件和字体,我想将它们作为前缀添加到assetPrefix
。我当前的next.config.js
如下所示:
module.exports = (phase) => {
return withTypescript(
withCSS(
withImages(
withOffline({
env,
useFileSystemPublicRoutes: false,
assetPrefix: isProd ? 'https://d28d4ipdckjadl.cloudfront.net' : '',
inlineImageLimit: 16384,
...
<link
rel="stylesheet"
type="text/css"
href={'/static/bootstrap.css'}
/>
也就是说,我的\u document.js
有如下代码:
module.exports = (phase) => {
return withTypescript(
withCSS(
withImages(
withOffline({
env,
useFileSystemPublicRoutes: false,
assetPrefix: isProd ? 'https://d28d4ipdckjadl.cloudfront.net' : '',
inlineImageLimit: 16384,
...
<link
rel="stylesheet"
type="text/css"
href={'/static/bootstrap.css'}
/>
我想可能是网页包的问题,所以我也在标记它。根据客户端/服务器端的需要,尝试使用
assetPrefix
的值创建publicRuntimeConfig
和/或serverRuntimeConfig
对象
module.exports=(阶段)=>{
用typescript返回(
用CSS(
带图像(
带离线({
环境,
useFileSystemPublicRoutes:false,
assetPrefix:isProd?“https://d28d4ipdckjadl.cloudfront.net' : '',
publicRuntimeConfig:{
我的资产前缀:isProd?“https://d28d4ipdckjadl.cloudfront.net' : ''
},
服务器运行时配置:{
我的资产前缀:isProd?“https://d28d4ipdckjadl.cloudfront.net' : ''
}
}
然后您可以访问\u document.js
中的变量,如下所示:
从“next/config”导入getConfig;
...
const MY_ASSET_PREFIX=getConfig().publicRuntimeConfig.MY_ASSET_PREFIX;
至少这两个值都在同一个文件中。我可以这样做,但我希望我只能访问一个值。拥有两个真理不是最佳选择,需要记住这一点。