应无所住,而生其心
排名
1
文章
870
粉丝
112
评论
163
net core webapi post传递参数
庸人 : 确实坑哈,我也是下班好了好几次,发现后台传递对象是可以的,但...
百度编辑器自定义模板
庸人 : 我建议换个编辑器,因为现在百度富文本已经停止维护了,用tinymec...
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

nginx发布vue,nginx异常处理404处理,结合nginx优化路由404。vue项目发布在服务器中

3485人阅读 2020/12/20 17:19 总访问:5407003 评论:0 收藏:0 手机
分类: nginx

nginx发布vue

这里用vue3-admin-template来举例,其实都是一样的。

先打包

使用的打包命令类似npm run build:prod,反正根据实际情况打包出来即可。打包出来之后基本就是一套静态页面的内容了,把它放到nginx的html文件夹里边。

里边的内容如下:

然后配置nginx:

  1. server {
  2. # 监听的端口号
  3. listen 9200;
  4. # 服务名称 生产环境要修改成 公网ip 如 49.109.136.127
  5. server_name localhost;
  6. # 配置默认的主页显示 比如 49.109.136.127:9200 显示的 index 页面
  7. location / {
  8. # 根目录就是刚刚打包出来存放的位置
  9. root html/vue3-admin-template;
  10. index index.html;
  11. }
  12. #error_page 404 /404.html;
  13. # redirect server error pages to the static page /50x.html
  14. #
  15. error_page 500 502 503 504 /50x.html;
  16. location = /50x.html {
  17. root html;
  18. }
  19. }

配置好了,使用命令start nginx启用nginx,进行访问即可

注意在.config.js配置中base的配置会影响打包后静态资源的路径

如果配置错了,会影响发布到nginx后访问静态资源的问题,会出现404。


比如我们刚刚上传nginx那样的配置方式,在base里边就不能配置成base:'vue3-admin-template',那样静态资源就会相对vue3-admin-template目录去找是找不到的。反正就是静态资源引用的路径问题,知道原理了具体情况具体分析就行。

还有一种常用的发布方式,就是打包的时候base加上vue3-admin-template。然后nginx的配置写成下图这种。就是nginx配置的不接文件夹的方式,直接还是在html页面

访问的时候,就要这样访问了http://localhost:9200/vue3-admin-template 。就是要在地址栏后面加上文件夹的名称,其实这样做就相当于整个html文件夹里边都是一个大的项目,里边的子文件夹都是属于这个大项目下的一个模块或者说是子项目,有时候我们就是需要这种需求,这样就可以在开发的时候分成完全独立的项目开发,发布的时候又能合并到一起形成一个统一的大项目,nginx的配置很灵活的,根据实际情况使用即可。

下面这种配置其他地方看到的贴一下,需要用的时候也可以参考一下。

  1. http {
  2. server {
  3. # 监听的端口号
  4. listen 9200;
  5. # 服务名称 生产环境要修改成 公网ip 如 47.105.134.120
  6. server_name localhost;
  7. # 配置根目录的地址是以 nginx 下的 html 文件夹为根目录来查找的
  8. root html;
  9. # 配置默认的主页显示 比如 47.105.134.120:8080 显示的 index 页面
  10. location / {
  11. try_files $uri $uri/ /index.html;
  12. }
  13. # 配置我们的 admin 的前台服务 比如 47.105.134.120:8080/admin/index.html
  14. location ^~ /admin {
  15. # 处理 Vue 单页面应用 路由模式为 history 模式刷新页面 404 的问题
  16. try_files $uri $uri/ /admin/index.html;
  17. }
  18. # 如果你想配置多个项目的话,可以复制上面的,修改一下就可以同时部署多个前端项目了
  19. # 比如
  20. # location ^~ /blog {
  21. # 处理 Vue 单页面应用 路由模式为 history 模式刷新页面 404 的问题
  22. # try_files $uri $uri/ /blog/index.html;
  23. # }
  24. #error_page 404 /404.html;
  25. # redirect server error pages to the static page /50x.html
  26. #
  27. error_page 500 502 503 504 /50x.html;
  28. location = /50x.html {
  29. root html;
  30. }
  31. }
  32. include servers/*;
  33. }

nginx处理vue项目404异常,结合nginx优化路由404

解决思路:


nginx检查404,然后跳转到首页并且把404的页面地址当做参数传递进去,然后在首页获取到那个发生404的地址,在进行跳转。

nginx的配置方法

  1. server {
  2. listen 8001;
  3. server_name localhost;
  4. root E:\CloundInv\LandWecaht;
  5. location / {
  6. try_files $uri $uri/ @router;
  7. }
  8. location @router {
  9. rewrite ^(.*)$ http://$http_host?redirecturl=$uri last;
  10. }
  11. }

try_files的意思就是监听异常的出现,比如404,500应该也监听得,然后执行了@router,在下面就跳转到了,首页去,然后了一个$uri的参数,就是发现404的页面,然后在首页获取到那个发生404的地址,在进行跳转。

vue中首页的处理

  1. created() {
  2. let rurl = this.$route;
  3. if (rurl.fullPath.includes("redirecturl")) {
  4. let _url = rurl.fullPath.replace("&", "?").replace("/?redirecturl=", "");
  5. console.log(`redirect:${rurl.fullPath}->${_url}`);
  6. this.$router.push(_url);
  7. }
  8. this.streets = streetdatas;
  9. this.street = streetdatas[0].streetname;
  10. this.activename = streetdatas[0].streetname;
  11. let an = this.$route.query.an;
  12. if (an) {
  13. this.streetgroup_vbs = true;
  14. this.activename = an;
  15. this.street = an;
  16. }
  17. },

欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)

评价

nginx常用命令。nginx启动命令。nginx重启命令。nginx关闭命令。nginx测试配置文件是否正确。nginx nginx.pid文件丢失报错

启动命令:start nginx 关闭命令:nginx -s stop nginx -s quit nginx -s stop与nginx -s quit区别 Quit is a graceful shu...

nginx配置负载均衡注意事项

一.如果location下面的proxy_pass配置有端口号nginx就会直接反向代理到这个地址这样你配置的upstream就没有用了,即使名字和...

nginx反向代理负载均衡

nginx介绍nginx是一个高效的反向代理工具,可以很方便的实现服务的负载均衡反向代理方式实际上就是一台负责转发的代理服务器...

使用nginx在同一台服务器上配置多个二级域名

一般二级域名都是解析到不同的服务器上,但是很多时候没有那么土豪可以用那么多服务器哇。当然土豪完全可以1个二级域名一台...

使用nginx在同一台服务器上配置多个二级域名2

在第一篇中介绍了一种方法:http://www.tnblog.net/aojiancc2/article/details/2430其实还可以使用第二种方法,也就是配置...

nginx处理静态资源

如果我们使用了nginx反向代理后,直接去项目中请求我们的静态资源会比较慢,当然我们有条件使用cdn更好,没有不使用cdn,也...

nginx配置注意事项

一.要注意后面要加一个分号:不然就会报这个错:

使用nginx后net core无法获取ip问题

使用了nginx后net core获取ip地址居然全部是本地的地址,不是外网的地址这是因为nginx转发了一次后,我们直接使用常规获取i...

.net Core3.0在Ubuntu 16.04上面的部署(Supervisor+nginx)(扩展docker)

前 言Linux 随着Linux越来越流行,本人一个.net程序员也多次研究linux与.net的相关产品,以及中间件的使用方式。So今天给...

nginx四层负载均衡

实验环境CentOS-7-x86_64-DVD-1810.iso本机IP:10.4.7.11安装Nginx执行安装命令yuminstallnginx-y配置Nginx通过 Vim打开Ngi...

nginx https的证书配置与301跳转

在 etc/nginx/ 目录下新建 ssl 文件夹来存放证书。把 crt 证书文件和 key 私钥文件上传到这里。然后就可以配置 Nginx 配置...

windows nginx配置https证书

windows nginx配置https证书还是比较简单的我这里申请的证书是阿里云的,去下载nginx版本的解压后有两个文件一个.key,一个....

nginx bind() to 0.0.0.0:443 failed

就是因为443端口被占用了而已!,找到占用的端口停掉即可。可以参考:http://www.tnblog.net/aojiancc/article/details/3319

nginx重启无效

有可能是因为nginx打开了多个,在应用程序中看看

nginx 静态资源gzip压缩与缓存,解决静态资源加载慢的问题

在http模块中开启gzip压缩# 开启gzip gzip on; # 启用gzip压缩的最小文件,小于设置值的文件将不会压缩 gzip_min_lengt...

nginx限制文件上传大小

有些时候用了nginx,除了项目本身要配置上传大小限制,nginx也要限制 直接贴代码吧 location / { proxy_set_header X...