<script setup lang="ts">
const config = useRuntimeConfig()
</script>
export default defineEventHandler((event) => {
const config = useRuntimeConfig(event)
})
下面的示例展示了如何设置一个仅在服务器上可访问的公共 API 基础 URL 和一个秘密 API 令牌。
我们应始终在 nuxt.config 中定义 runtimeConfig 变量。
export default defineNuxtConfig({
runtimeConfig: {
// Private keys are only available on the server
apiSecret: '123',
// Public keys that are exposed to the client
public: {
apiBase: process.env.NUXT_PUBLIC_API_BASE || '/api',
},
},
})
runtimeConfig 中。需要在客户端和服务器端都访问的变量定义在 runtimeConfig.public 中。要访问运行时配置,我们可以使用 useRuntimeConfig() composable
export default defineEventHandler(async (event) => {
const config = useRuntimeConfig(event)
// Access public variables
const result = await $fetch(`/test`, {
baseURL: config.public.apiBase,
headers: {
// Access a private variable (only available on the server)
Authorization: `Bearer ${config.apiSecret}`,
},
})
return result
})
在此示例中,由于 apiBase 定义在 public 命名空间下,它在服务器端和客户端都可以普遍访问,而 apiSecret 仅在服务器端可访问。
可以通过设置以 NUXT_ 为前缀的匹配的环境变量来更新运行时配置值。
.env 文件我们可以将环境变量设置在 .env 文件中,使其在 开发 和 构建/生成 期间可访问。
NUXT_PUBLIC_API_BASE = "https://api.localhost:5555"
NUXT_API_SECRET = "123"
.env 文件中设置的任何环境变量,在 Nuxt 应用中通过 process.env 访问。.env。app 命名空间Nuxt 在运行时配置中使用 app 命名空间,其中包含 baseURL 和 cdnURL 等键。您可以通过设置环境变量在运行时自定义它们的值。
app 中引入其他键。app.baseURL默认情况下,baseURL 设置为 '/'。
然而,可以通过设置 NUXT_APP_BASE_URL 作为环境变量,在运行时更新 baseURL。
然后,您可以使用 config.app.baseURL 访问此新的基础 URL
export default defineNuxtPlugin((NuxtApp) => {
const config = useRuntimeConfig()
// Access baseURL universally
const baseURL = config.app.baseURL
})
app.cdnURL此示例展示了如何设置自定义 CDN url 并使用 useRuntimeConfig() 访问它们。
您可以使用自定义 CDN 通过设置 NUXT_APP_CDN_URL 环境变量来为 .output/public 中的静态资产提供服务。
然后使用 config.app.cdnURL 访问新的 CDN url。
export default defineEventHandler((event) => {
const config = useRuntimeConfig(event)
// Access cdnURL universally
const cdnURL = config.app.cdnURL
})