【发布时间】:2022-12-30 20:51:05
【问题描述】:
在 AstroJS 框架 (https://astro.build/) 中,您可以拥有路由的 .astro 文件,您还可以将这些文件导入其他 astro 文件并将它们用作组件。我看到一个问题,根据调用的 Astro.request 属性,您只允许在文件用作路由时调用它们。是否可以有条件地知道文件是路由还是组件?
【问题讨论】:
标签: astrojs
在 AstroJS 框架 (https://astro.build/) 中,您可以拥有路由的 .astro 文件,您还可以将这些文件导入其他 astro 文件并将它们用作组件。我看到一个问题,根据调用的 Astro.request 属性,您只允许在文件用作路由时调用它们。是否可以有条件地知道文件是路由还是组件?
【问题讨论】:
标签: astrojs
参考(警告部分https://docs.astro.build/en/guides/server-side-rendering/#astrorequestheaders)
谈论路线,假设模式是SSR
不是在谈论集成 API,而是在谈论 SSR 组件运行时 API https://docs.astro.build/en/reference/api-reference/
当假设 pages/404.astro 是一条路由但也被来自 pages/[...any].astro 的组件使用时,'.astro' 文件可能既是组件又是路由
那种讨厌的情况不允许使用 import.meta.url 检查它所在的路径,因此即使用作另一条路线的组件,它也可能在页面中。
[...any].astro
pages/404.astro
在他们每个人中都放置了以下日志
console.log(Astro.request)
console.log(Astro.request.headers)
console.log(Astro.url)
console.log(Astro.params)
console.log(Astro.props)
【讨论】: