当前位置: 首页 > news >正文

Vue 项目中使用 EJS 模板动态注入环境变量

🚀 Vue 项目中使用 EJS 模板动态注入环境变量

在使用 Vue CLI 构建项目时,public/index.html 是一个 EJS 模板文件。很多小伙伴想要在 HTML 里根据 process.env 注入动态变量,比如根据生产环境设置 baseUrl,却发现直接写:

var baseUrl = process.env.VUE_APP_BASE_API;

最后打包后仍然输出的是字面量 process.env.VUE_APP_BASE_API,而不是它的值。


🎯 问题原因

Vue CLI 中 public/index.html 是由 EJS 渲染的模板。
在 EJS 语法中:

<% ... %> 表示逻辑代码(不会输出内容)
<%= ... %> 表示输出变量值(会自动 HTML 转义)
<%- ... %> 表示输出变量值(不转义)

所以你要在 HTML 中输出环境变量的值,必须用:

<%= process.env.VUE_APP_BASE_API %>

🏗 示例代码

以下代码会在生产环境下把 VUE_APP_BASE_API 注入到全局 JS 变量:

<% if (process.env.NODE_ENV === 'production') { %><script>window.SITE_CONFIG['projectName'] = 'zhubayi';var baseUrl = '<%= process.env.VUE_APP_BASE_API %>';</script>
<% } %>

这里:
if 判断是否是生产环境
<%= ... %> 输出 VUE_APP_BASE_API 的值为字符串

.env.production文件

# 开发环境配置
NODE_ENV = 'production'# 页面标题
VUE_APP_TITLE = 测试平台# 管理系统/生产环境
VUE_APP_BASE_API ='/test-api'

🛠 使用建议

  • 注意 1:环境变量必须在 .env.production.env 文件中定义,且变量名要以 VUE_APP_ 开头,才会在 Vue CLI 中生效。
  • 注意 2:如果你输出的变量是路径,注意末尾是否带 /,拼接时容易出错。
  • 注意 3:如果需要输出复杂 JSON,可以使用 JSON.stringify(process.env.MY_VAR)

📦 总结

✅ 在 EJS 模板中,想要输出变量值,必须用 <%= ... %>
✅ 普通 <% ... %> 是逻辑控制,不会输出任何内容。


http://www.xdnf.cn/news/313129.html

相关文章:

  • Vue3.5 企业级管理系统实战(十七):角色管理
  • String、StringBuilder、StringBuffer的区别
  • 0506--01-DA
  • TDengine 车联网案例
  • 2025.5.6总结
  • python setup.py install --user和pip install -e .的区别
  • HHsuite3 的 HHblits 和 HHsearch比较
  • android设备运行bcc程序报错
  • 5.6刷题并查集
  • Python-map从基础到进阶
  • SpringBoot Starter简介-笔记
  • https://juejin.cn/editor/drafts/7262346366541070395
  • RNN 与 CNN:深度学习中的两大经典模型技术解析
  • [HOT 100] 2646. 最小化旅行的价格总和
  • C语言| 递归实现斐波那契数列
  • 基站综合测试仪核心功能详解:从射频参数到5G协议测试实战指南
  • day008-文件属性专题
  • 爱普生VG7050EFN压控晶振在小基站的应用优势
  • linux -shell原理与运用
  • 人工智能任务24-AI学习中的模型训练中稀疏化参数与稀疏损失函数,以及实战项目应用
  • TruPlasma Match匹配器软件通快霍廷格TruPlasma Match100613 (G2)1024/13 (G2) RF Matchbox
  • 功率因数校正(PFC):原理、调节及关键波形分析
  • 大学之大:伯明翰大学2025.5.6
  • 一周学会Pandas2 Python数据处理与分析-Pandas2数据类型转换操作
  • langchain4j接入ollama本地大模型
  • 深入理解分布式锁——以Redis为例
  • APP自动化测试(一)
  • 《让内容“活”起来:Flutter社交应用瀑布流布局的破界实践》
  • 信息论06:信息增益——量化不确定性的艺术与科学
  • 深度学习:图神经网络GNN、GCN及其在推荐系统的应用