96SEO 2026-09-15 03:58 37
大模型时代。多模态能力让AI不仅能“看懂”图像,还能“理解”文字指令并生成全新的图片。作为前端开发者,我们经常需要在项目里调用LLM接口。例如通义万相这类生图模型。但一个棘手的问题始终存在:
API密钥怎么安全地放在前端项目里?

直接写死在fetch或axios里肯定不行——一旦代码提交到公开仓库,密钥瞬间泄露。有没有一种既能在开发时方便调用,又不会暴露密钥的方法?答案是的观点是,Vite + .env。
Pain Point:传统工具如Webpack配置繁琐。启动慢,热更新卡顿,按理说,而且环境变量管理不够直观。
Vite是一个极速的建立工具,它基于原生ESM提供秒级启动和热更新体验。Vite内置了对.env环境变量的支持,解决问题密钥硬编码问题。
从打开终端执行来看,
npm init vite@latest qwen-image-demo -- --template vanilla && cd qwen-image-demo && npm install
.env.local 文件——将密钥藏进“保险箱”*请勿将此文件推送至 Git!*
# .env.local
VITE_QWEN_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# 必须以 VITE_ 开头才能被 import.meta.env 注入到客户端
# .env.local 通常会被 .gitignore 忽略。从而保证密钥不上传到仓库
*以下代码已做详细注释,可直接拷贝使用**
<!-- type="module" 启用 ESM 模式,Vite 会接管该模块 -->// main.js // --------------------------- // 环境变量读取 const apiKey = import.meta.env.VITE_QWEN_API_KEY;// --------------------------- // DOM 根节点获取 const root = document.querySelector;// --------------------------- // 调用通义万相多模态生成接口 async function generateImage { const payload = { 至于model。"qwen-image--pro",input: { messages: } ] },parameters: { n: 1,size: "*" } // * 为竖屏尺寸,可改为 * 或 * 等其它尺寸代号 };try { const res = await fetch( 说到'https,//dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation'。{ 从method来看,'POST',headers: { 'Content-Type': 'application/json',Authorization: `Bearer ${apiKey}` },body这方面,JSON.stringify } );if throw new Error;话说回来,const data = await res.json;// 根据官方返回结构取出图片 URL const imgUrl = data?.output,.choices?.,.message?.content,.?.image,if throw new Error;return imgUrl;} catch { console.error;老实说,throw err;} } // --------------------------- // 渲染图片到页面并简单错误提示/加载状态展示 function renderImage { root.innerHTML = ``;} function showLoading { root.innerHTML = '';} function showError { root.innerHTML = `
${msg}
`;} // --------------------------- // 主流程入口 => { try { showLoading;按理说,const url = await generateImage;renderImage,} catch { showError;} }),三、代码详细说明
. 多模态请求的奥秘 — 图文混合输入到底怎么工作?其实,
{ image }: 可公开访问图片 URL 或 Base64 字符串。{ text }: 自然语言指令,是模型对齐的关键依据。
import/export 而无需打包工具包装。.
js
Pain point: 对 ES6 模块不熟悉的新手往往担心浏览器兼容性。但现代主流浏览器已完全支持 ESM,无需 polyfill。
.env.local 加载:import.meta.env.VITE_QWEN_API_KEY 自动注入,只在本地有效;别忘记添加至 .gitignore!Pain point: 开发者常因疏忽将 .env 文件推送至 GitHub 上造成泄漏。**
bash
npm init vite@latest qwen-image-demo -- --template vanilla && cd qwen-image-demo && npm install && npm run dev
打开浏览器 http://localhost: 就可以看到自动渲染出的第一张 AI 合成图。
.env.local中自己的通义千问 API Key。
• 确认node>=16,npm>=7.
• 确保网络可连通阿里云 DashScope 接口。• 若出现 CORS 报错,请检查是否开启了 “允许所有来源”。
`
html
javascript // 在 main.js 中添加事件监听:
document.getElementById.addEventListener => { /* ... */ });
Take‑away: 前端即使面对强大的 AI 服务。也能通过 Vite 的现代化工程流程保持代码整洁、安全,并快速迭代产出高质量、多模态视觉体验。老实说,
现在就尝试创建自己的智能图像应用吧。让 AI 成为你创意流程中的得力助手!javascript root.innerHTML='
. 错误处理更友好
javascript if { const err=await res.json;throw new Error;}
. 支持多种尺寸
javascript parameters:{ size:'*' /* 正方形 */。width:'512',height:'768'} // 按需修改即可。
✔️
.env.local与 import.meta.env 实现 API Key 的安全管理,并通过 Gitignore 防止泄漏;✔️  ,
'
✔️
`
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback