推荐新手直接通过官方CDN引入Layui:在head中引入CSS,在body底部引入JS,使用https://unpkg.com/layui@2.8.18/;本地部署需解压后按路径引入,注意图标字体路径和加载顺序。

直接通过 CDN 引入 Layui(推荐新手)
最简单的方式是用官方 CDN,不用下载、解压、配路径。Layui 官方已停止维护,但 https://unpkg.com/layui@2.8.18/ 仍可稳定访问,2.8.18 是最后一个正式版。
在 index.html 的 <head> 里加这行:
<link rel="stylesheet" href="https://unpkg.com/layui@2.8.18/dist/css/layui.css">
再在 <body> 底部加:
<script src="https://unpkg.com/layui@2.8.18/dist/layui.js"></script>
- 必须先引入 CSS,再引入 JS;顺序反了会导致组件样式错乱
- JS 一定要放在
<body>底部,或用defer,否则layui.use()可能报"layui is not defined" - 别用
https://cdn.staticfile.org/layui/2.8.18/...这类镜像——部分镜像未同步更新,CSS 和 JS 版本不一致时会出怪问题,比如下拉框点不动、表格无边框
本地部署 Layui(适合离线或定制需求)
从 GitHub Release 页面 下载 layui-v2.8.18.zip,解压后得到 layui 文件夹,把它放到项目根目录下(和 index.html 同级)。
立即学习“前端免费学习笔记(深入)”;
将调研报告、方案对比、数据分析、需求梳理、会议纪要、设计说明、代码评审、学习笔记等任务产物输出为可在浏览器直接打开的单文件 HTML,替代 Markdown 作为最终交付物。Markdown 在信息密度、视觉清晰度和可分享性上已跟不上 AI 产物的丰富度,HTML 能同时承载排版、表格、SVG 等。
引入方式和 CDN 一样,只是路径改成本地:
<link rel="stylesheet" href="./layui/css/layui.css"><br><script src="./layui/layui.js"></script>
- 确保路径中没有多层嵌套(如
./static/layui/...),否则容易漏掉layui.css依赖的图标字体路径,导致按钮图标显示为方块 -
layui.js会自动读取同级css/目录,所以不要挪动css文件夹位置 - 如果用了 Webpack/Vite 等构建工具,不建议直接 import Layui——它依赖全局
layui对象,且不支持 ES Module,强行打包反而增加出错概率
验证是否引入成功:跑一个最简 demo
别急着写复杂页面,先用一段代码确认环境通了:
<button class="layui-btn" id="testBtn">点我</button><br><script><br>layui.use(function(){<br> var layer = layui.layer;<br> document.getElementById('testBtn').onclick = function(){<br> layer.msg('Layui 加载成功');<br> };<br>});<br></script>
- 如果点击没反应,先打开浏览器控制台,看有没有
"layui is not defined"或"layer is not defined"报错 -
layui.use()是异步加载模块的入口,不能省略;直接写layui.layer.msg()会报错 - 这个 demo 不依赖
layui.all.js,也不需要额外配置layui.config(),够用即止
常见错误:为什么按钮没样式 / 组件不响应?
不是代码写错了,大概率是环境链路断在某个环节:
- 检查浏览器地址栏是不是
file:///协议——Layui 的图标字体和部分模块依赖 AJAX 加载,本地双击打开 HTML 会触发跨域,必须用本地服务器(如python3 -m http.server 8000)访问 - 确认
layui.js加载后没有报"Failed to load resource: net::ERR_CONNECTION_REFUSED",这种通常是 CDN 地址拼错或网络策略拦截 - 如果用了 Vue/React,别把 Layui 组件直接写在响应式模板里(如
v-html),它的 DOM 操作和框架生命周期冲突,按钮可能渲染了但事件绑定失效 - Layui 2.x 不支持 IE10 以下,也不支持 Safari 10 以前版本;若用户环境老旧,得提前降级或换方案
真正卡住的时候,往往不是语法问题,而是协议、路径、加载时机这三个点中某一个没对齐。盯着 Network 面板看资源状态,比反复改 JS 更有效。

















