You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Astro 9.5.1中路由到Markdown文件显示页面不存在

Astro 9.5.1中Markdown链接404的解决办法

你遇到的问题是因为Astro会自动将src/pages目录下的Markdown文件编译成HTML页面,访问时不需要带.md后缀,直接使用编译后的页面路径即可。

修复步骤

  • 修改链接的href属性,移除.md后缀:
    把原代码里的./post-1.md/这类路径改成./post-1/,修改后的组件代码如下:
---
// component imports
import MainLayout from "../../layouts/MainLayout.astro";
---

<MainLayout title="My Blog">
    <ul>
        <li><a href="./post-1/"> post-1</a></li>
        <li><a href="./post-2/"> post-2</a></li>
        <li><a href="./post-3/"> post-3</a></li>
        <li><a href="./post-4/"> post-4</a></li>
        <li><a href="./post-5/"> post-5</a></li>
        <li><a href="./post-6/"> post-6</a></li>
    </ul>
</MainLayout>
  • 更高效的写法:利用Astro.glob动态生成博客列表,避免手动维护链接出错:
---
import MainLayout from "../../layouts/MainLayout.astro";
const posts = await Astro.glob("./post-*.md");
---

<MainLayout title="My Blog">
    <ul>
        {posts.map(post => (
            <li key={post.url}>
                <a href={post.url}>{post.frontmatter.title || post.url.split("/").pop()}</a>
            </li>
        ))}
    </ul>
</MainLayout>

这种方式会自动获取所有匹配的Markdown文件,读取它们的路由地址和标题(如果Markdown里配置了title前置属性),动态生成链接,后续新增文章也不需要手动修改组件。

内容的提问来源于stack exchange,提问作者Arnav Gandre

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 09:57:23