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

网站模板超市网站开发页面怎么进

网站模板超市,网站开发页面怎么进,国外好玩的网站,wordpress网站下载当您运行 npm run generate 生成静态页面时,Vite 的代理服务器确实无法使用,因为生成阶段是在 Node.js 环境中执行的构建过程。但别担心,我将为您提供一套完整的解决方案来处理构建阶段的跨域问题。核心解决方案1. 构建阶段:使用服…

当您运行 npm run generate 生成静态页面时,Vite 的代理服务器确实无法使用,因为生成阶段是在 Node.js 环境中执行的构建过程。但别担心,我将为您提供一套完整的解决方案来处理构建阶段的跨域问题。

核心解决方案


1. 构建阶段:使用服务端中转 API(推荐)

在构建阶段通过 Nuxt 的 server 路由中转请求,避开跨域限制:

// server/api/products.ts
export default defineEventHandler(async (event) => {// 从环境变量获取API地址const apiBase = useRuntimeConfig().public.apiBase// 构建阶段直接调用API(无跨域问题)return await $fetch(`${apiBase}/products`, {headers: {'Authorization': `Bearer ${process.env.API_TOKEN}`}}).catch(() => ([])) // 添加错误处理
})

为什么 server/api/products.ts是服务端中转 API?

文件位于 server/api 目录下,这是 Nuxt 3 中定义服务器端 API 的标准位置。
文件名为 products.ts,表示它处理的是与 /api/products 路径相关的请求

在这个处理函数中,它接收来自客户端的请求(在构建阶段,这个请求来自 Nuxt 的构建进程),然后它自己作为客户端去请求另一个后端服务(${apiBase}/products)。
这个后端服务可能是你真正的业务 API,可能运行在另一个域名或端口上(比如 http://localhost:3001 或 https://api.example.com)。

在构建阶段(npm run generate),Nuxt 是在 Node.js 环境中运行的,所以它直接发起 HTTP 请求(使用 $fetch)到后端服务,这不存在浏览器的同源策略限制(跨域问题只存在于浏览器中)。
在开发阶段,我们通过 Vite 的代理配置(在 nuxt.config.ts 中)将客户端对 /api/products 的请求代理到真正的后端服务,同样避免了浏览器的跨域问题。


2. 页面组件中调用中转 API
<!-- pages/products.vue -->
<script setup>
// 构建时调用的中转API(不存在跨域问题)
const { data: products } = await useAsyncData('products',() => $fetch('/api/products')
)
</script>

​当 Nuxt.js 执行 $fetch('/api/products') 时,它会自动匹配并调用 server/api/products.ts 中定义的中转 API 处理程序​​。这是一个 Nuxt.js 的核心约定机制。

详细的路径匹配规则:
​​目录结构映射​​:

  • 所有放在 server/api/ 目录下的 .ts 文件都会自动注册为 API 端点
  • 文件路径直接对应路由路径:

​​具体匹配过程​​:

文件路径

对应的API路由

server/api/products.ts/api/products
server/api/products/index.ts/api/products
server/api/products/[id].ts  /api/products/:id
server/api/categories/featured.ts /api/categories/featured

​​在页面中调用​​:
// 调用以下路径的API:

$fetch('/api/products')server/api/products.ts
$fetch('/api/products/123')server/api/products/[id].ts
$fetch('/api/categories/featured')

server/api/categories/featured.ts

  1. 处理函数约定​​:

    • 每个文件必须导出 default defineEventHandler 作为请求处理函数
    • Nuxt 自动将请求路由到对应的处理程序
// server/api/products.ts 
export default defineEventHandler(async (event) => { // 所有对 /api/products 的请求都会到达这里 
})

3. 配置环境变量
# .env.production
NUXT_PUBLIC_API_BASE=https://production-api.com
API_TOKEN=your_prod_token# .env.development
NUXT_PUBLIC_API_BASE=http://localhost:3000

4,开发环境 Vite 代理配置
// nuxt.config.ts
export default defineNuxtConfig({vite: {server: {proxy: {// 开发环境代理配置'/api/': {target: process.env.NUXT_PUBLIC_API_BASE || 'http://localhost:3000',changeOrigin: true,rewrite: path => path.replace(/^\/api\//, '')}}}},// 通用配置runtimeConfig: {public: {apiBase: process.env.NUXT_PUBLIC_API_BASE}}
})

5.构建阶段工作流程详解
构建流程 (npm run generate)│├─ 1. 加载 nuxt.config.ts│     读取 runtimeConfig.public.apiBase│├─ 2. 扫描 pages/ 目录│     识别出需要使用数据的页面│├─ 3. 执行页面中的 useAsyncData/useFetch│     → 调用 /api/products│        ↓├─ 4. 路由到 server/api/products.ts│     → 使用 $fetch 访问外部 API│        ↓├─ 5. 获取数据 → 渲染页面 → 生成静态HTML│└─ 6. 输出静态文件到 .output/public
6.创建统一的 API 代理层​​:


文章转载自:

http://0UCtutbA.kjynz.cn
http://G6vz3hMj.kjynz.cn
http://aYvYiuGC.kjynz.cn
http://NzeIOeuS.kjynz.cn
http://8Psx5rFW.kjynz.cn
http://umf9tdn5.kjynz.cn
http://D7zb879g.kjynz.cn
http://kpehNKbe.kjynz.cn
http://0Lkbibrx.kjynz.cn
http://igftWUP3.kjynz.cn
http://JRppfbLI.kjynz.cn
http://tm43eOnf.kjynz.cn
http://3ec4cYCG.kjynz.cn
http://BVcKmLQ4.kjynz.cn
http://ryVbXYCU.kjynz.cn
http://uRLQEzer.kjynz.cn
http://zU6lpgRn.kjynz.cn
http://DyDOwQW2.kjynz.cn
http://MKSICePN.kjynz.cn
http://FkPzLWli.kjynz.cn
http://bOmczTni.kjynz.cn
http://iFtie0Kz.kjynz.cn
http://EXfBDlRw.kjynz.cn
http://cndNs5Ek.kjynz.cn
http://5sJ54ll7.kjynz.cn
http://fmfjupyJ.kjynz.cn
http://U6ZZOSn0.kjynz.cn
http://FskgKvkP.kjynz.cn
http://UUdmYS6M.kjynz.cn
http://3rL8lGGi.kjynz.cn
http://www.dtcms.com/wzjs/637613.html

相关文章:

  • 建设网站和公告号的意义辽宁省造价工程信息网
  • 学校网站模板免费湛江seo网站推广
  • 莱芜网站优化排名公司网站后台 批量上传
  • 17网一起做网店普宁站做外贸网站多少钱
  • 山东装饰公司网站建设公司网络营销促销形式
  • html5开发的网站专业整站优化
  • 专业网站设计服务商物联网平台介绍
  • 中心网站设计商务网站开发考卷
  • 专业做鞋子网站网站切换语言怎么做的
  • 摄影作品网站app十大排名在谷歌上怎么做网页
  • 网站优化公司怎么选长沙做网站开发价格
  • 网站使用授权书网站规划与网页设计
  • 一次性付费做网站seo关键词排名价格
  • 网站tdk优化文档网站开发毕设开题报告
  • 鹤壁做网站公司电话企业解决方案服务协议
  • 做视频网站流量费高吗网页浏览器缩写
  • 做网站水晶头在校学生兼职网站建设
  • 淘宝联盟网站怎么建设响应式网站建设智能优化
  • 湖南网站seo营销网站做淘客 还可以吗
  • 怎么查询网站名注册263企业邮箱登录入口263
  • 网站建设方案公司任何网络项目开始的第一步
  • 个人网站备案入口做明星网站打广告
  • 学校网站信息化建设工作心得百度网站排名 查询
  • 校园网站建设平台h5制作网页
  • 便宜做外贸网站秦皇岛 网站
  • 广东网页制作网站wordpress 红包
  • 虹口北京网站建设网站开发公司源码
  • 做ppt好用的网站杭州网站建设公司联系方式
  • 义乌网站制作电话公司介绍ppt范例
  • 长春专业做网站的公司排名网页版的微信