nextjs docs(https://nextjs.org/docs/basic-features/static-file-serving)声明在public
目录下添加图像文件路径。
我有一个渲染图像组件的组件,该文件在我的nextjs项目中正确渲染,但在storybook中无法渲染。图像文件当前位于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设置相同的方式渲染图像?
3条答案
按热度按时间vof42yt11#
你需要告诉故事书在哪里可以找到你的图像。在
nextjs
中,它们仍然在public/
中,因此您可以将-s ./public
添加到脚本中以运行storybook:这里的文档链接供参考:https://storybook.js.org/docs/react/configure/images-and-assets#serving-static-files-via-storybook
ssm49v7z2#
你需要像这样修改.storybook/preview.js文件:
gcuhipw93#
对我有用的是,我需要使用staticDirs告诉storybook.js我的公共资源位于何处。
即:根目录>.storybook目录>
main.ts