组件通常依赖于图片、视频、字体和其他资源,以按照用户的预期进行渲染。在故事文件中使用这些资源有多种方法。
您可以通过导入(或要求)任何媒体资源来导入它们。它与我们的默认配置开箱即用。但是,如果您使用的是自定义 webpack 配置,则需要添加 文件加载器 来处理所需的文件。
之后,您可以在故事中使用任何资源
MyComponent.stories.ts|tsx
我们建议通过 Storybook 提供静态文件,以确保您的组件始终拥有其需要加载的资源。我们建议对组件经常使用的资源(如徽标、字体和图标)使用此技术。
在启动 Storybook 时,配置一个目录(或目录列表)来存放您的资源。在您的主要 Storybook 配置文件(即 .storybook/main.js|ts
)中使用 staticDirs
配置元素来指定目录
这里 ../public
是您的静态目录。现在像这样在组件或故事中使用它。
MyComponent.stories.ts|tsx
您还可以传递以逗号分隔且不带空格的目录列表,而不是单个目录。
甚至可以使用配置对象来定义目录
将您的文件上传到在线 CDN 并引用它们。在本例中,我们使用的是占位符图片服务。
MyComponent.stories.ts|tsx
有时,您可能希望将 Storybook 部署到子路径中,例如 https://example.com/storybook
。
在这种情况下,您需要让所有图片和媒体文件都使用相对路径。否则,浏览器将无法找到这些文件。
如果您通过导入来加载静态内容,则此过程是自动的,您无需执行任何操作。
假设您与 Storybook 一起在 静态目录 中提供资源。在这种情况下,您需要使用相对路径来加载图片或使用 base 元素。
配置 Storybook 从静态文件夹提供资源后,您可以在 Storybook 中引用这些资源。例如,您可以引用并应用自定义字体到您的故事。为此,请在配置目录(例如,.storybook
)中创建一个 preview-head.html
文件,并添加一个 <link />
标签来引用您的字体。