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

SvelteKit项目中如何在application.yml中使用环境变量

解决SvelteKit项目中application.yml密钥环境化的问题

首先明确:你提到的projectRoot/app/src/main/resources/application.yml是Java Spring Boot后端的配置文件,和SvelteKit前端的frontend/.env分属两个独立运行环境,无法直接交叉引用。以下分场景给出可行方案:

一、针对Spring Boot后端的application.yml配置

你之前用{{secrets.secret1}}的模板语法不符合Spring Boot规则,所以无效。正确的配置方式如下:

  1. 使用Spring原生环境变量引用语法
    在application.yml中用${变量名}引用环境变量,示例:

    # application.yml
    your-business-config:
      secret1: ${SECRET1}
      secret2: ${SECRET2}
    
  2. 三种设置环境变量的方式

    • 系统环境变量:直接在操作系统中定义SECRET1=xxx、SECRET2=xxx,Spring Boot会自动读取。
    • 后端专属.env文件:在projectRoot/app目录下创建.env文件(务必加入.gitignore避免提交),内容如下:
      SECRET1=secretValue
      SECRET2=secretValue
      
      然后给Spring Boot项目添加spring-boot-starter-dotenv依赖(Maven/Gradle均可),让后端自动加载该.env文件。
    • 本地配置文件:在src/main/resources下创建application-local.yml(加入.gitignore),内容:
      your-business-config:
        secret1: secretValue
        secret2: secretValue
      
      启动后端时添加启动参数--spring.profiles.active=local,激活本地配置。

二、针对SvelteKit前端的密钥配置

如果这些密钥是给前端代码使用的,无需在application.yml中配置,直接利用frontend/.env处理:

  1. 在frontend/.env中定义变量:

    # frontend/.env
    PRIVATE_SECRET1=secretValue  # 私有变量,仅能在SvelteKit服务器端代码中访问
    PUBLIC_SECRET2=publicValue   # 公开变量,需加PUBLIC_前缀才能在浏览器端访问
    
  2. 在SvelteKit代码中引用:

    <!-- 服务器端组件/路由中引用私有变量 -->
    <script>
      import { env } from '$env/static/private';
      console.log(env.PRIVATE_SECRET1);
    </script>
    
    <!-- 浏览器端组件中引用公开变量 -->
    <script>
      import { env } from '$env/static/public';
      console.log(env.PUBLIC_SECRET2);
    </script>
    

总结

你之前用values.yml加模板引用的方法不适用于Spring Boot,所以无效。先明确密钥的使用场景(后端/前端),再对应上述方案配置即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 10:42:21