为了账号安全,请及时绑定邮箱和手机立即绑定

Vue项目打包上传问题

标签:
Vue.js

2018年5月4日打卡

这几天在研究nuxt.js,因为想重构公司的官网,但用vue这个spa单页应用又不利于网页的seo,在浏览别的的博客中,我发现了nuxt这个框架,可以说完全的解决了我的问题啊。

当然本篇文章还是主要讲解记录了vue项目的打包,因为我发现用nuxt做出来的应用无法放在服务器的二级目录下,一定要放在根目录下,这就让我很难受了,网上也没有解决办法。因为之前我用vue做出来的项目网上教授了放在二级根目录的方法,所以我理所应当的把所有vue做出来的项目都放在了服务器的二级目录下(现在想起来真的很蠢),即使会出现刷新404的问题,奈何本人懒,也就不深究了。

谁能想到,终究还是回到了vue项目打包上传服务器的这一步,进过一番研究,总算搞清楚了,原谅我的啰嗦,真的是难以抑制内心的激动之情,感觉世界都清明了。。。。。_

好了,不说了,上教程。

首先,vue项目使用

npm run build

来进行打包操作,这个都知道吧

打包完成后在项目中生成一个dist的文件夹,里面的内容就是咱们要传到服务器的内容了。

服务器以ngnix举例操作(因为我的服务器上的环境就是ngnix)

在服务器上找到ngnix的配置文件,一般都是default.conf

里面的内容大致是这样的

server {
listen   80;
server_name  localhost;#charset koi8-r;#access_log  /var/log/nginx/host.access.log  main;

   root   /usr/share/nginx/html;
location / {
   
try_files $uri $uri/ /index.html;
index  index.html index.htm index.php;
}

error_page  404  /404.html;# redirect server error pages to the static page /50x.html#error_page   500 502 503 504  /50x.html;
location = /50x.html {
root   /usr/share/nginx/html;
}# proxy the PHP scripts to Apache listening on 127.0.0.1:80##location ~ \.php$ {#proxy_pass   http://127.0.0.1;#}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000#location ~ \.php$ {
root   /usr/share/nginx/html/;
fastcgi_pass   127.0.0.1:9000;
fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
includefastcgi_params;
}# deny access to .htaccess files, if Apache's document root# concurs with nginx's one##location ~ /\.ht {#deny  all;#}}

我们需要更改我们的ngnix配置。目的是配置二级子域名,然后指向服务器的一个文件夹,这样当我们访问子域名时,服务器便直接指向了这个文件夹,而不是通过 域名+文件名 的方式来访问(我以前就是用这种方式,蠢哭)。

配置如下

server
{
    listen   80;
    server_name   admin.spn365.cn;
    root   /usr/share/nginx/html/sqztcAdmin;
    index  index.php index.html index.htm;
    location / { 
        root   /usr/share/nginx/html/sqztcAdmin;
        try_files $uri $uri/ /index.html =404; 
    } 
}

在上面的服务器默认配置的最下面再添加一个server,server_name后面要写你的子域名(友情提示:子域名要在云服务器控制台上添加解析哦),root指向的是项目具体的文件夹,location那个部分也很重要,这样配置可以解决vue项目刷新后由于路由导致的404问题。这样ngnix的配置就完成了。

下一步就是重启ngnix服务器,让配置生效

centos服务器上的ngnix的重启方法

systemctl restart nginx

ubuntu服务器上的ngnix的重启方法

sudo systemctl stop nginx
sudo systemctl start nginx

个人使用方法,不喜勿喷

服务器没有报错的话就是配置成功了,现在把dist文件夹下的文件传到服务器上你指定的文件下试试吧。如果没错的话,在浏览器上访问你的子域名就能跳到你的项目了,说太多了,好累,去歇着了。。。。。

有问题欢迎留言。



作者:行走的巨象
链接:https://www.jianshu.com/p/f81294ab235d


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消