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

青岛网站建设找润商广西seo

青岛网站建设找润商,广西seo,品牌型网站制作公司,一站式服务平台登录在 Next.js 中,路由是通过文件夹结构来定义的,使用类似于 History 模式的 URL 结构。所以如果想通过nginx来代理一个nextjs开发的系统, 除非直接使用跟路径/来进行代理,否则代理将非常麻烦,这时添加basePath就非常有必…

在 Next.js 中,路由是通过文件夹结构来定义的,使用类似于 History 模式的 URL 结构。所以如果想通过nginx来代理一个nextjs开发的系统, 除非直接使用跟路径/来进行代理,否则代理将非常麻烦,这时添加basePath就非常有必要了。下面将罗列出nextjs添加前缀后需要做哪些操作来进行适配。

1.next.config.js配置修改

增加basePath配置,这里为了方便统一修改,我使用了环境变量
注意:由于 This value must be set at build time and cannot be changed without re-building as the value is inlined in the client-side bundles.(此值必须在构建时设置,如果不重新构建,则无法更改,因为该值内联在客户端捆绑包中。)所以如果不想使用.env中的环境变量,而是系统内部环境变量,那么在打包之前就应该将环境变量配置好。如果修改了此环境变量则必须重新打包
在这里插入图片描述

2.静态资源路径调整

和vue项目不同,vue中可以通过在vue.config中配置publicPath来设置系统前缀,访问静态资源时将自动加上publicPath对应值作为访问前缀。在nextjs中,添加basePath后,访问public中的静态资源时需要自己手动添加basePath对应的值作为路径前缀。
2.1 js文件:
在这里插入图片描述
2.2 图片:
图片添加前缀的方式和js类似,但是项目中使用静态图片的地方可能比较多,可以直接写一个方法来为图片路径添加前缀

export const getSrcFullPath = (src?: string) => {const srcFullPath =process.env.NEXT_PUBLIC_SYSTEM_BASE_URL &&src?.startsWith('/') &&!src.startsWith(process.env.NEXT_PUBLIC_SYSTEM_BASE_URL)? (process.env.NEXT_PUBLIC_SYSTEM_BASE_URL || '') + src: src;return srcFullPath;
};

在这里插入图片描述
2.3 其他静态文件参考js和图片即可。

3.路由路径调整

3.1 如果是通过Link组件的href属性进行路由的跳转,则组件的href属性需要加上配置的前缀
在这里插入图片描述

3.2 如果是通过router.push/replace方法进行路由的切换,则传入router.push中的path配置不用修改,即不用添加前缀信息,跳转后的地址默认会包含前缀(通过router.push方法进行路由跳转时一定不要加basePath前缀,加上后会反而会多拼接一次前缀路径导致地址错误)
在这里插入图片描述

4.内部接口增加前缀

如果使用了nextjs的Route Handlers来定义自定义接口,那么在访问接口时也需要加上前缀地址,一般情况下,我们会使用二次封装的axios来发送请求,这里也在封装文件中统一添加前缀地址
在这里插入图片描述

5.外部接口本地调试调整

除了内部接口,如果还需要访问外部接口,通常需要通过代理设置来解决浏览器请求跨域问题,在nextjs中通过设置next.config.js配置文件中的rewrites属性来实现代理,如图
在这里插入图片描述
但是添加basePath,本地调试时再次访问外部接口会直接报错404。
猜想next.config.js中添加basePath后,访问外部接口时接口路径为http://localhost:3000/database/page,此时并没有匹配到添加前缀后的nextjs环境,自然也不会进入到next.config.js中的rewrites代理配置。所以在开发环境,也需要为外部接口添加前缀。添加前缀后方能进入到next.config中的代理(next.config中的rewrites属性无需修改)
在这里插入图片描述

http://www.yidumall.com/news/107450.html

相关文章:

  • 做的很好的画册网站百度推广人联系方式
  • 个人可以做社区网站东莞关键词排名seo
  • 淘宝联盟怎么做网站河南seo外包
  • 宁夏手机网站建设怎么制作seo搜索优化
  • 长安公司网站建设线上营销策略有哪些
  • 邯郸市哪里有做网站的百度seo教程
  • 营销型网站是啥意思优化营商环境工作开展情况汇报
  • 网站开发源码seo做得比较好的公司
  • 做全景网站微商营销技巧
  • seo营销培训咨询黑帽seo是作弊手法
  • 昆明网站设计能实现什么功能公司软文怎么写
  • 沈阳网站制作 600元直通车关键词优化
  • 北京架设网站网络营销ppt怎么做
  • 做logo找灵感的网站网络免费推广平台
  • 河北建设网站怎么下载企业锁网络销售的方法和技巧
  • 微信开发者工具安装武汉seo服务
  • 团购网站建设方案百度信息流投放在哪些平台
  • 罗永浩做的网站谷歌浏览器下载安卓版
  • 做黄页网站要告我营销软文范例大全100
  • 西安网站推广都是怎么做的seo数据分析哪些方面
  • 大连建设工程设计院有限公司网站竞价推广代运营公司
  • 常德网站建设公司百度网盘登录
  • 怎样学网站开发百度财报q3
  • 套餐型网站建设合同广州专做优化的科技公司
  • 在家跟狗做网站视频武汉百度推广外包
  • dw6做网站百度推广登录首页官网
  • 池州市建设管理处网站中公教育培训机构官网
  • 万网空间最多放几个网站百度学术搜索入口
  • 做网站的公司名称360排名优化工具
  • 口碑好的网站定制公司收录之家