# 静态资源
# 公共文件
所有的静态资源,你都需要将它们放在 .mdpress/public
中,无论是直接被你的任何一个 markdown 文件或者主题组件引用的图片,还是 favicons 和 PWA 的图标。它们最终会被复制到生成的静态文件夹中。
# 基础路径
如果你的网站会被部署到一个非根路径,你将需要在 .mdpress/config.js
中设置 base
,举例来说,如果你打算将你的网站部署到 https://foo.github.io/bar/
,那么 base
的值就应该被设置为 "/bar/"
(应当总是以斜杠开始,并以斜杠结束)。
有了基础路径(Base URL),如果你希望引用一张放在 .mdpress/public
中的图片,你需要使用这样路径:/bar/image.png
,然而,一旦某一天你决定去修改 base
,这样的路径引用将会显得异常脆弱。为了解决这个问题,MdPress 提供了内置的一个 helper $withBase
(它可以通过 useData 这个钩子获取),可以帮助你生成正确的路径:
import useData from '@app/hooks/data';
function Foo(){
const { $withBase } = useData();
return <img src={$withBase('/foo.png')} alt="foo"/>;
}
值得一提的是,你不仅可以在你的 React 组件中使用上述的语法,在 Markdown 文件中亦是如此。
```rc
const src = $withBase('/foo.png');
return <div><img src={src} alt="foo"/></div>
```
但你并不需要这样引入图片,使用
<img src="/foo.png" alt="foo"/>
即可,我们会在渲染 markdown 时自动注入 base url 进去。
最后补充一句,一个 base
路径一旦被设置,它将会自动地作为前缀插入到 .mdpress/config.js
中所有以 /
开始的资源路径中。
← 基本配置Markdown 拓展 →