前端框架中index.html中的变量语法

简介: 在 vue 或者 react 前端项目中,我们经常会在入口模板文件 index.html 中看到用 %PUBLIC_URL%、<%= BASE_URL %>、<%= title %> 之类的变量插入

在 vue 或者 react 前端项目中,我们经常会在入口模板文件 index.html 中看到用 %PUBLIC_URL%、<%= BASE_URL %>、<%= title %> 之类的变量插入。

但这似乎我们平时的 html 或者 javscript 压根没见过这类的写法,一时感觉超出了自己的知识盲区。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <link rel="icon" type="image/svg+xml" href="/vite.svg" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title><%= title %></title>
  </head>
  <body>
    <div id="root"></div>
    <script type="module" src="/src/main.tsx"></script>
  </body>
</html>

%PUBLIC_URL%

%PUBLIC_URL% 代表项目 public 静态资源文件夹的绝对路径,vite3 中 index.html 中的 URL 将被自动转换,因此不再需要 %PUBLIC_URL% 占位符了,文档

一般用来设置网站的图标、logo或者全局css、js引用这些,如 。

对应 vite 中的 publicDir 配置,默认就是 public

<%= BASE_URL %>

项目根目录

要修改这个值,vue + webpack项目中 Vue CLI 3.3 之前的版本,配置:baseURl: '/static',Vue CLI 3.3 之后(包括3.3)的版本,配置:publicPath: '/static'。

这个值在开发环境下同样生效,这么改打包后是没问题了,但项目本地运行会报错,官方也给出了方案,只需要判断一下当前环境是生产环境还是开发环境,再设置不同的路径就可以了:

module.exports = {
   
  publicPath: process.env.NODE_ENV === 'production'
    ? '/static/'
    : '/'
}

ejs 模板语法

像我们在 html 代码中见到的 <%%>、<%=%>、<%:%> 这类语法,其实是 ejs模版语法,就是帮我们用 JavaScript 代码来生成 HTML 页面。

四种语法:

  1. 纯脚本标签

里面可以直接写 js 代码,用于书写流程控制语句,不输出任何内容。

<% xxx %>

<%
for (var i = 0; i < 10; i++) {
   
  alert('hello world')
}
%>
  1. 输出经过 HTML 转义的内容

将数据输出到模板,如果输出的数据是HTML,则会被转义,如 '<'、'>'、'&' 等 html 字符,会被转义成字符实体:< > &

<%= xxx %>

  1. 输出非转义的内容

和上一个类似,不过不会被转义,通常用来输出富文本内容

<%- xxx %>

const html = '<p>我是周小黑</p>'
<h2><%- html %></h2>
  1. 引入其他模版

将相对于模板路径中的模板片段包含进来

<%- include('文件路径') %>

  1. 条件判断
<% if (condition1) {
    %>
  ... 
<% } %>

<% if (condition1) {
    %>
  ... 
<% } else if (condition2) {
    %>
  ... 
<% } %>
  1. 循环
<% for(var i = 0; i < arr.length; i++){
    %>
  <%= i %> <%= arr[i] %>
<% } %>
  1. 注释

EJS模板提供的注释方式,不会被作为模板内容编译输出

<%# xxx %>

相关文章
|
5月前
|
移动开发 前端开发 安全
|
7月前
|
前端开发
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
183 1
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
|
5月前
|
前端开发 JavaScript
|
8月前
|
移动开发 前端开发 搜索推荐
《前端技术基础》第01章 HTML基础【合集】
超文本标记语言(HyperText Markup Language,简称 HTML)是构建网页结构的基础标记语言。它与 CSS、JavaScript 协同,负责搭建网页“骨架”,用标签组织内容,像标题、段落、图片等元素,通过起始与结束标签(部分可单用,如`<img>`)界定层级与布局,将信息有序整合。标签含特定语义,向浏览器传达展示方式,为网页准确呈现及后续美化、交互筑牢根基。
219 25
|
9月前
|
人工智能 前端开发 JavaScript
前端基础之HTML
Web1.0、Web2.0 和 Web3.0 标志着互联网发展的三个阶段。Web1.0(静态互联网,1990年代初至2000年代初)以静态内容和单向信息流为主,用户仅能浏览。Web2.0(互动互联网,2000年代初至2010年代初)引入了用户生成内容和社交网络,内容动态且互动性强。Web3.0(语义互联网,2010年代至今)强调语义化、个性化、智能化及去中心化,结合AI、区块链等技术,提供沉浸式体验。HTTP和HTML作为互联网基础协议和技术,在各阶段不断演进,共同推动了现代互联网的发展。
前端基础之HTML
|
10月前
|
前端开发 JavaScript 搜索推荐
HTML与CSS在Web组件化中的核心作用及前端技术趋势
本文探讨了HTML与CSS在Web组件化中的核心作用及前端技术趋势。从结构定义、语义化到样式封装与布局控制,两者不仅提升了代码复用率和可维护性,还通过响应式设计、动态样式等技术增强了用户体验。面对兼容性、代码复杂度等挑战,文章提出了相应的解决策略,强调了持续创新的重要性,旨在构建高效、灵活的Web应用。
201 6
|
10月前
|
存储 移动开发 前端开发
高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容
本文深入探讨了高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容,旨在提升开发效率、网站性能和用户体验。
271 5
|
11月前
|
XML 前端开发 JavaScript
前端开发进阶:从HTML到React.js
【10月更文挑战第9天】前端开发进阶:从HTML到React.js
|
11月前
|
前端开发 JavaScript 数据安全/隐私保护
【前端基础篇】HTML零基础速通2
【前端基础篇】HTML零基础速通
106 2