axure导出html必须通过本地服务器运行,直接双击index.html会导致交互失效;应勾选js/css文件、避免中文路径、用live server或http-server启动服务,并统一使用web安全字体。

导出按钮在哪、点完会发生什么
Axure 的「发布 → 生成 HTML 文件」不是一键生成可运行页面,而是生成一堆带 index.html 的静态资源(JS/CSS/图片),必须用本地服务器打开,否则交互失效、数据加载失败、下拉菜单不弹出——浏览器直接双击打开 index.html 就会遇到这些。
实操建议:
- 导出前务必勾选
Include Axure JS files和Include CSS files,否则连基础交互逻辑都没了 - 输出目录别选桌面或中文路径,
C:\axure-export\比D:\我的原型\第一版\更稳,路径含空格或中文可能导致axure.js加载 404 - 导出后别直接双击
index.html,用 VS Code 装 Live Server 插件右键「Open with Live Server」,或命令行跑npx http-server ./export-folder
为什么点击无效、跳转不工作
常见现象是按钮点了没反应、动态面板不切换、中继器数据空白——本质是 Axure 导出的 HTML 依赖本地服务端支持 CORS 和文件读取,而浏览器 file:// 协议禁止跨文件 JS 请求本地 JSON 或加载 data.js。
关键原因和应对:
立即学习“前端免费学习笔记(深入)”;
- Axure 默认把交互数据存在同级
data.js,file:// 下被浏览器拦截,必须走http://或https://协议才能加载 - 如果用了「自定义变量」或「全局变量」,导出时未启用
Enable global variable support,GetGlobalVariable函数会返回空字符串 - 中继器(Repeater)绑定的数据源如果是 Excel 或 CSV,Axure 实际导出的是内嵌 JSON,但 file:// 下无法执行
XMLHttpRequest,必须本地起服务
怎么让同事不装 Axure 也能看真交互
目标是发一个链接,对方点开就能操作原型,而不是传一堆文件让人自己折腾服务器。最轻量方案就是用现成静态托管,而非部署 Nginx 或 Python HTTP 服务。
推荐做法:
- 导出时选择
Generate single HTML file(仅限简单原型),它会把 JS/CSS/base64 图片全塞进一个index.html,直接发给同事双击可用(但动态面板、中继器、条件逻辑大概率失效) - 更稳妥:把导出的整个文件夹拖进 GitHub/GitLab 仓库,开启 Pages 服务(如
https://username.github.io/my-prototype/),全程免费,5 分钟搞定 - 如果原型含敏感内容不能上公网,用
python3 -m http.server 8000在局域网启动服务,同事访问http://192.168.x.x:8000即可,无需额外工具
导出后字体乱码、中文显示方块
不是字体没嵌入,而是 Axure 默认用系统字体渲染,导出 HTML 后浏览器找不到对应字体,尤其 Windows 上用「微软雅黑」、Mac 上用「PingFang SC」,跨平台就挂。
解决路径很窄:
- 在 Axure 里统一改用 Web 安全字体:把所有文本样式设为
"Helvetica Neue", Helvetica, Arial, sans-serif,不要写「思源黑体」或「Noto Sans CJK」 - 导出设置里关掉
Use system fonts for text rendering(v10+ 叫这个选项),强制 Axure 把文字转成 SVG 或图片(体积变大,但保真) - 如果必须用中文字体且要小体积,提前在 Axure 页面里插入一段隐藏的
@font-faceCSS(通过「母版 → 添加 HTML」注入),并确保导出时勾选Include custom CSS










