vuejs怎么在服务器上发布部署
首先VUE 是一个javascript的前端框架,注定了它是运行在浏览器里的,对服务器本地没有任何要求,只要一个静态文件服务器能通过http访问到其资源文件就足矣!无论你是用apache ,ngnix 就算你要用node 自己实现一个静态文件服务器,也用不了多少行代码。
npm run dev 是用来在本地开发的时候做调试用的,vue开发的是前端的东西,不是nodejs 服务端程序,按道理讲,生产环境里就不该存在npm,甚至nodejs也不需要(用nodejs来做web静态服务的除外),楼主通过ssh进入到服务器里,再运行npm run dev 来启动哪是开发机上做的事情。正确的做法很简单,通过npm run build 把生成的dist文件夹(不要上传文件夹)里的内容上传到http服务器上就可以通过 http来访问了,开发机上正常,上传以后 程序出现错误不能运行的原因99.99%的可能性是你引用资源的路径有问题。
一般如果vue框架的程序上传到网站服务器的根目录下是不 会有问题的,也不存在资源文件引用错误的情况,但如果你不是根目录,就会有问题,通过vue-cli 生成的开发目录,build以后默认引用资源文件的路径是
比如 app.js的引用方式<script type="text/javascript" src="/static/js/app.js"></script>
所以,如果你的目录结构是 如下
www/+hot/+static/+index.html
当你通过http://www.xxx.com/hot/index.html来访问的时候 会出现找不到app.js
因为index.html里引用的app.js路径是
http://www.xxx.com/static/js/app.js
但是app.js的实际路径是
http://www.xxx.com/hot/static/js/app.js 所以出现了404
要解决的方法很简单把引用方式 改成如下两种方式 都可以
<script type="text/javascript" src="./static/js/app.js"></script>
或者
<script type="text/javascript" src="/hot/static/js/app.js"></script>
推荐这样的方式,可以保正在vue-router生成的url下也不出现问题
都可以,当然这也不需要手动去改,
在webpack的配置文件中修改
assetsPublicPath: './'
或者
assetsPublicPath: '/hot/',
这样,我们就基本解决了有服务器子目下运行的问题,
当然,如果你还用到了vue-router
要在router的配置中加上
export default new Router({mode: 'history',base: '/hot/', //加上这一行
用浏览器打开http://www.xxx.com/hot/
一切运行正常,点击各种链接也能出来,但是由于我启用了history模式,我直接在浏览里访问 http://www.xxx.com/hot/item/1 这样的url是又404了,为什么 我可以在首页通过点击进入 http://www.xxx.com/hot/item/1 这个页面,但是直接访问又不行呢,
因为在history 模式下,只是动态的通过js 操作window.history 来改变有浏览器地址栏里的路径,并没有发起http请求,但当你直接 在浏览器里输入这个地址的时候 就一定要先对服务器放起http请求,但是这个目标在服务器上又不存在所以就返回了404了,怎么解决呢,就是把所有的请求全部转发到http://www.xxx.com/hot/index.hmtl上就可以了
我用的是apache 做web服务器的虚拟空间,而且开启支.htaccess文件支持,
我成我的文件里加上如下,就一切正常了,
<IfModule mod_rewrite.c>Options +FollowSymlinksRewriteEngine OnRewriteCond %{REQUEST_URI} ^/(hot|hot/.*)$RewriteRule ^/hot/index\.html$ - [L,NC]RewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^(hot|hot/.*)$ hot/index.html [L]
</IfModule>
这个配置的作用就是把所有服务器上不存在请求全部转发到index.html上去,这样就可以直接通过各种url来访问了
vuejs怎么在服务器上发布部署相关推荐
- 史上最详细阿里云服务器上Docker部署War包项目 实战每一步都带详细图解!!!
史上最详细阿里云服务器上Docker部署War包项目 实战每一步都带详细图解!!! 部署jar 包方式: https://blog.csdn.net/weixin_45821811/article/d ...
- 联系随笔2---在tomcat服务器上发布servlet应用程序
问题二:在tomcat服务器上发布servlet应用程序 1,new->Dynamic Web Project写工程名字->next->next在Generate web.xml文件 ...
- 服务器上Nginx部署静态资源(含域名绑定)
Nginx 应用场景: 1.http 服务器.Nginx 是一个 http 服务可以独立提供 http 服务.可以做网页静态服务器. 2.虚拟主机.可以实现在一台服务器虚拟出多个网站.例如个人网站使用 ...
- 在 Linux 或者 Windows 服务器上安装部署 MATLAB
在 Linux 或者 Windows 服务器上安装部署 MATLAB 目标 在服务器上安装 MATLAB,以供实验室内多个用户远程连接使用.特别是要完成 MATLAB 的激活. 安装方式 这里我们采用 ...
- 视频会议系统服务器,视频会议系统在服务器上如何部署?
视频会议系统在服务器上如何部署? 具体怎么在服务器上搭建会议视频系统,首先要清楚的知道视频会议系统需要实现那些功能 一.基本的音视频通信,需要在任意两台终端之间均能在没有MCU参与的情况下通过网上拨号 ...
- 使用Arcmap往服务器上发布地图服务
要在服务器上发布地图服务,只需要在服务器上把ArcGIS server安装好就可以了,然后有服务器的ip地址就可以在别的电脑上往服务器上发布服务了 1.先将地图配置好,然后选择文件菜单栏下的共享为-- ...
- 在服务器上打包部署springboot+vue的项目(一)启动tomcat后打开浏览器点击登录无反应 页面空白问题
先记录查看与关闭端口的命令: netstat -ano|findstr "8080" taskkill /pid 5588 /f 打开某个端口: netsh firewall ad ...
- Vue项目从 打包优化 到 上线部署 云服务器的全过程(**教你在云服务器上优化部署自己的项目**)
前言 作为前端开发人员,我们不仅要会写代码,优化打包,上线部署也是一个前端工程师必备的技能,这篇文章就教大家从零开始,把一个完整项目打包发布到线上服务器.首先的准备工作就是需要一台云服务器. 项目打包 ...
- 史上最全阿里云服务器上Docker部署Springboot项目 实战 每一步都带详细图解!!!
在学习编程的时候,我们都会想,该怎么把自己写出来的项目和创意分享给大家勒.直接给代码吗?平常人看不懂,环境还需要一大堆. 那么部署到服务器上,让人能够直接访问,我想这应该是最棒的方式了吧. 使用Doc ...
最新文章
- c#设置软件开机自动运行,修改注册表
- [论文阅读] (03) 清华张超老师 - GreyOne: Discover Vulnerabilities with Data Flow Sensitive Fuzzing
- kafka配置文件 中文乱码_Kafka学习之配置文件详解
- Codeforces第一次rated比赛
- Java下载文件的几种方式
- JS代码 是否显示横竖条
- android 阻塞式函数,Android之PC浏览器上传表单格式大文件到手机客户端read函数阻塞问题...
- openwrt路由器进入安全模式
- flutter 一键生成安卓和ios应用图标
- css文字加边框镂空文字_如何使用CSS创建镂空边框设计
- 7.	Zigbee应用程序框架开发指南 - 时间处理
- 【计算机组成原理】二、静态随机存储器实验
- 你不知道的JavaScript(上卷)- - 书本知识点记录
- 费纳姆密码-二进制密码
- Fragment already added解决
- PHP操作redis详细讲解
- 网上问政有用吗?如何能更快得到回复?
- 微信服务号解决开启服务配置后自定义菜单失效的方法
- LeetCode 13 罗马符号转化为数字(难度: Easy)
- Docker Swarm学习教程【转载】