【问题标题】:Cant serve static files in NextJs + Storybook无法在 NextJs + Storybook 中提供静态文件
【发布时间】:2021-01-09 00:02:57
【问题描述】:

nextjs docs (https://nextjs.org/docs/basic-features/static-file-serving) 状态在public 目录下添加图片文件路径。

我有一个渲染图像组件的组件,该文件在我的 nextjs 项目中正确渲染,但没有在故事书中渲染。图片文件目前位于public/images/

const renderImage = () => {
    const portraitClassName = cx({
        [styles.imageContainerPortrait]: true,
    });

    return (
        <img
            className={portraitClassName}
            data-testid="image"
            src="/images/portrait.png"
            alt={image.imgAlt}
        />
    );
};

这是我当前的故事书配置文件

webpackFinal: async (config) => {
        config.module.rules.push({
            test: /\.(scss|sass|css)$/,
            use: [
                {
                    loader: "sass-loader",
                    options: {
                        implementation: require("sass"),
                    },
                },
                {
                    loader: "postcss-loader",
                    options: {
                        ident: "postcss",
                        plugins: [tailwindcss, autoprefixer],
                    },
                }
            ],
            include: path.resolve(__dirname, "../"),
        });
        return config;
    }

是否缺少某些东西可以让我以与设置 Nextjs 的方式相同的方式呈现图像?

【问题讨论】:

标签: typescript webpack next.js storybook


【解决方案1】:

您需要告诉故事书在哪里可以找到您的图像。 在nextjs 中,它们保留在public/ 中,因此您只需将-s ./public 添加到脚本中即可运行故事书:

//package.json
{
"scripts": {
    "start-storybook": "start-storybook -s ./public"
  }
}

这里的文档链接供参考:https://storybook.js.org/docs/react/configure/images-and-assets#serving-static-files-via-storybook

【讨论】:

    猜你喜欢
    • 2020-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-22
    • 2019-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多