如何访问页面中的 Astro 配置值?

问题描述 投票:0回答:2

我有一个 Astro 项目,其

astro.config.mjs
配置了
site
值。

export default defineConfig({
  site: 'https://example.com',
  // ...etc
})

在我的布局中,我有

<meta>
标签,其中硬编码了相同的 URL。

<meta property="og:url" content="https://example.com" />
<meta property="og:image" content="https://example.com/social.png" />

我希望能够访问

site
配置值来替换所有硬编码的 URL。

<meta property="og:url" content={config.site} />
<meta property="og:image" content={`${config.site}/social.png`} />

如何从页面内访问配置值?

config astrojs
2个回答
3
投票

该网站可以在

Astro.site
全球访问。这已记录在here
Astro.site
值是一个 URL 对象。

在你的 frontmatter 中使用它。

const origin = Astro.site.origin

获取完整 URL 的字符串。

const site = Astro.site.href
// or
const site = Astro.site.toString()

直接在 HTML 中使用它。

<meta property="og:url" content={Astro.site} />
<meta property="og:image" content={`${Astro.site}social.png`} />

0
投票

我没有答案。我在 Node.js 中运行 Astro。 Astro 使用 Vite,而 Vite 使用 dotenv。我可以使用以下方式获取 VITE 提供的默认变量:

console.log(import.meta.env);

我不能做的是让它找到我创建的 .env 文件。 Astro 说把它放在我已经完成的项目根目录中,我在 /src 甚至 /node_modules 中尝试过它。

有没有办法看到vite在哪里找文件?不应该有一个设置说在此处查找 .env 文件吗? Vite 说它应该位于环境目录中,但没有说明该目录的设置位置。

有谁知道Vite中的环境目录设置存放在哪里吗?

© www.soinside.com 2019 - 2024. All rights reserved.