reactjs - 使用 NextJS,我想以编程方式从 next.config.js 访问 assetPrefix

标签 reactjs webpack next.js

我在 _document.js 中包含了几个静态文件和字体,如果 next.config 中指定了这些静态文件和字体,我希望将它们添加为 assetPrefix 前缀。 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 具有如下代码:

<link
    rel="stylesheet"
    type="text/css"
    href={'/static/bootstrap.css'}
 />

我认为这可能是 webpack 的事情,所以我也标记了它。

最佳答案

根据客户端/服务器端需求,尝试使用 assetPrefix 的值创建 publicRuntimeConfig 和/或 serverRuntimeConfig 对象.

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;

关于reactjs - 使用 NextJS,我想以编程方式从 next.config.js 访问 assetPrefix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56992714/

相关文章:

javascript - Webpack - 忽略 require() 中的加载器?

caching - 如何使用 Vercel/Next.js 改进字体加载/缓存?

node.js - Next.JS - `.htaccess` 文件?

javascript - react : Send ref back to container component?

reactjs - 使用 Enzyme 和 Jest 在 React 中测试 handle change 函数

javascript - Django webpack 加载程序 : how to refer to static images compiled by webpack

docker - Docker从文件撰写构建时间参数

reactjs - React + NextJS - protected 路线

javascript - 使用 createRef 处理嵌套导航 + IntersectionObserver 的问题

javascript - 通过 WebPack 将 Bootstrap 加载到 Wordpress 时,ReactJS 代码拆分会导致错误