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

入门vue——创建vue脚手架项目 以及 用tomcat和nginx分别部署vue项目(vue2)

入门vue——创建vue脚手架项目 以及 用tomcat和nginx分别部署vue项目(vue2)

  • 1. 安装npm
  • 2. 安装 Vue CLI
  • 3. 创建 vue_demo1 项目(官网)
    • 3.1 创建 vue_demo1 项目
      • 3.1.1 创建项目
      • 3.1.2 解决 sudo 问题
    • 3.2 查看创建的 vue_demo1 项目
      • 3.2.1 项目结构
      • 3.2.2 项目结构简单说明
    • 3.3 运行 vue_demo1 项目
  • 4. 创建 vue_demo2 项目(入门练习)
    • 4.1 创建项目
    • 4.2 编写组件
    • 4.3 编写main.js
    • 4.4 编写index.html
    • 4.5 启动看效果
    • 4.6 附代码
      • 4.6.1 组件
      • 4.6.2 其他
  • 5. tomact 上部署脚手架vue项目
    • 51. 安装 并 启动 tomcat
    • 5.2 部署vue项目
    • 5.3 访问项目
  • 6. nginx 上部署脚手架vue项目
    • 6.1 关于nginx的安装、配置等
    • 6.2 将打包后的dist文件上传的服务器上
      • 6.2.1 上传服务器
      • 6.2.2 注意问题-403
    • 6.3 配置nginx
    • 6.4 重启nginx,访问看效果
    • 6.5 防火墙问题
  • 7. 遇到的问题
    • 7.1 组件之间样式冲突
    • 7.2 部署服务器上的页面不加载
      • 7.2.1 详细问题如下:
      • 7.2.2 问题原因 + 解决问题
  • 8. 项目下载

1. 安装npm

  • 详细参考下面的文章:
    npm常用命令 + 前端常用的包管理工具 以及 npm淘宝镜像配置等.

2. 安装 Vue CLI

  • 安装前可使用 nrm 切换到淘宝镜像,如下:
    nrm use taobao
    
    在这里插入图片描述
  • 安装命令:
    npm install -g @vue/cli
    # OR
    yarn global add @vue/clisudo npm install -g @vue/cli  #Mac
    
    在这里插入图片描述
  • 使用命令,查看安装版本
    vue
    vue -V
    
    在这里插入图片描述
  • 官网地址:
    https://cli.vuejs.org/zh/.

3. 创建 vue_demo1 项目(官网)

3.1 创建 vue_demo1 项目

3.1.1 创建项目

  • 命令:
    vue create vue_demo1sudo vue create vue_demo1   # Mac的要想解决这个sudo的束缚,看下面的 3.1.2 解决 sudo 问题
    
    在这里插入图片描述

3.1.2 解决 sudo 问题

  • 每次必须加上 sudo 挺麻烦的,想要解决的话,根据提示解决,先看提示,如下:
    在这里插入图片描述
  • 输入提示命令解决:
    sudo chown -R 501:20 "/Users/XXX/.npm"
    
    在这里插入图片描述

3.2 查看创建的 vue_demo1 项目

3.2.1 项目结构

  • 如下:
    在这里插入图片描述

3.2.2 项目结构简单说明

  • main.js 文件是项目的入口
    在这里插入图片描述
  • App.vue 组件是所有组件的父组件
    在这里插入图片描述

3.3 运行 vue_demo1 项目

  • 命令如下:
    npm run servesudo npm run serve  # Mac权限问题用这个
    
    在这里插入图片描述
  • 访问:
    在这里插入图片描述

4. 创建 vue_demo2 项目(入门练习)

4.1 创建项目

  • 跟上面的步骤一样,再创建一个新的项目 vue_demo2 ,用于修改练习,创建过程不再介绍。

4.2 编写组件

  • 组件结构如下:
    在这里插入图片描述

4.3 编写main.js

  • 如下:
    import Vue from 'vue'
    import App from './App.vue'Vue.config.productionTip = falsenew Vue({el:'#dogZool',render: h => h(App),});
    
    在这里插入图片描述

4.4 编写index.html

  • 如下:
    在这里插入图片描述

4.5 启动看效果

  • 打包项目

    npm run build
    
  • 启动命令:

    npm run serve
    
  • 效果:
    在这里插入图片描述

    在这里插入图片描述

4.6 附代码

4.6.1 组件

  • ZooHead.vue

    <template><div><h2 >{{zoolTitle}}</h2><nav style="float: right;"><a href="#">首页</a><a href="#">我的关注</a><a href="#">我的收藏</a><a href="#">我的</a></nav></div>
    </template><script>export default{name:'ZooHead',data() {return{zoolTitle:'01-欢迎来到狗狗乐园!!'}}};
    </script><!-- scoped 处理组件样式冲突 -->
    <style scoped>div{height: 80px;}h2{color: green;}nav a{padding-left: 20px;}</style>
    
  • DogInfo.vue

    <template><div ><h2 >02-狗狗信息</h2><table><caption>狗狗信息</caption><thead><tr><th>狗狗编号</th><th>狗狗姓名</th><th>狗狗性别</th><th>狗狗年龄</th><th>狗狗种类</th><th>备注</th></tr></thead><tbody><tr v-for="dog in dogs" v-bind:key="dog.dogNum"><td>{{dog.dogNum}}</td><td>{{dog.dogName}}</td><td>{{dog.sex}}</td><td>{{dog.dogAge}}</td><td>{{dog.dogKind}}</td><td>{{dog.dogDesc}}</td></tr></tbody></table></div>
    </template><script>export default{name:'DogInfo',data() {return{dogs:[{dogNum:'A1001',dogName:'麦兜',sex:'女',dogAge:3,dogKind:'边牧',dogDesc:'温柔、调皮又粘人'},{dogNum:'A1002',dogName:'贝塔',sex:'女',dogAge:3,dogKind:'边牧',dogDesc:'性格温柔'},{dogNum:'A1003',dogName:'大牙',sex:'男',dogAge:2,dogKind:'边牧',dogDesc:'活泼'},{dogNum:'A1004',dogName:'泡泡',sex:'女',dogAge:6,dogKind:'柯基',dogDesc:'性格温柔'},					{dogNum:'A1005',dogName:'乐乐',sex:'男',dogAge:1,dogKind:'柴犬',dogDesc:'调皮'},{dogNum:'A1006',dogName:'闪闪',sex:'男',dogAge:9,dogKind:'秋天',dogDesc:'高傲'},{dogNum:'A1007',dogName:'托尼',sex:'女',dogAge:3,dogKind:'边牧',dogDesc:'聪明'}	]}}};
    </script><style scoped>table caption{font-size: 25px;background-color: aqua;}table{background-color: aqua;border: 1px solid;border-collapse: collapse;width: 800px;height: 300px;margin-bottom: 30px;/* border-radius: 10px; */}th,td{border: 1px solid;text-align: center;}h2{color: rebeccapurple;}</style>
    
  • ZooBottom.vue

    <template><div ><h2 >{{zoolMore}}</h2><footer><nav><a href="#">关于我们</a><a href="#">联系我们</a><a href="#">友情链接</a><a href="#">了解更多</a></nav></footer></div>
    </template><script>export default{name:'ZooBottom',data() {return{zoolMore:'03-更多'}}};
    </script><style scoped>h2{color: skyblue;}a{padding-left: 20px;}</style>
    
  • App.vue

    <template><div><ZooHead></ZooHead><hr><DogInfo></DogInfo><hr><ZooBottom></ZooBottom></div>
    </template><script>//引入组件import ZooHead from "./components/ZooHead.vue"import DogInfo from './components/DogInfo' //.vue 可省略import ZooBottom from './components/ZooBottom'export default{name:'app',components:{ZooHead,DogInfo,ZooBottom}};</script><style>
    </style>
    

4.6.2 其他

  • main.js

    import Vue from 'vue'
    import App from './App.vue'Vue.config.productionTip = falsenew Vue({el:'#dogZool',render: h => h(App),});
    
  • index.html

    <!DOCTYPE html>
    <html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1.0"><link rel="icon" href="<%= BASE_URL %>favicon.ico"><title><%= htmlWebpackPlugin.options.title %></title></head><body><div id="dogZool"><App></App></div></body>
    </html>

5. tomact 上部署脚手架vue项目

51. 安装 并 启动 tomcat

  • 关于 tomcat的安装等问题,自己解决一下,或者参考下面的文章:
    linux下安装tomact.

5.2 部署vue项目

  • 将 build 后的 dist 文件上传到服务器上,放到 tomcat 的 webapps 目录下,我这里又加了一层 vue_demo ,如下:
    在这里插入图片描述

5.3 访问项目

  • 直接输入,访问即可,注意端口号,我这里把tomact 的端口改成了 8089,如下:
    http://服务器IP:tomact端口/vue_demo/dist/index.html
    
    在这里插入图片描述

6. nginx 上部署脚手架vue项目

6.1 关于nginx的安装、配置等

  • 关于nginx的安装、配置等,可看下面的文章
    • Nginx 01篇——Nginx详细安装步骤以及Nginx各种启动方式
    • Nginx 02篇——Nginx基本配置与参数说明篇
    • Nginx 03篇——Nginx配置实例

6.2 将打包后的dist文件上传的服务器上

6.2.1 上传服务器

  • 存放目录,如下:
    cd /nginx_test/vue_project/vue_demo
    
    在这里插入图片描述

6.2.2 注意问题-403

  • 我这里刚开始将项目放到了 susu 用户下,如下:
    在这里插入图片描述

  • 出先的问题就是 403,如下:
    在这里插入图片描述

  • 问题原因:
    我这里是 root 用户启动的 nginx,所以这里有访问权限的问题。

  • 解决问题:
    解决办法:把 nginx 的启动用户改成目录的所属用户,重启 Nginx 即可解决,配置如下:

    user susu
    

    在这里插入图片描述

  • 重新访问

    • 修改完配置之后,然后 root 用户重启动 nginx,再次访问,问题已解决。

    • 当然,也可以用 susu 用户启动,root 用户安装的 nginx 也可以,如下:

      sudo ./nginx 
      

      在这里插入图片描述

      如果因为权限问题不能启动,请参考下面这篇文章:
      linux下新建用户并给用户授权以及解决 sudo 不能使用问题.

6.3 配置nginx

  • 如下:
      server {listen 9007;server_name 服务器IP;location /dist/ {
    #        root  /home/susu/vue_project/vue_demo/;root  /nginx_test/vue_project/vue_demo/;}}
    
    在这里插入图片描述

6.4 重启nginx,访问看效果

  • 如下:
    http://服务器IP:9007/dist/index.html
    
    在这里插入图片描述

6.5 防火墙问题

  • 如果拒绝访问,查看防火墙问题,可以看下面的文章:
    linux下查看防火墙状态、关闭防火墙、开放关闭端口等.

7. 遇到的问题

7.1 组件之间样式冲突

  • 解决问题:
    style 标签上的 scoped 属性,如下:
    在这里插入图片描述

7.2 部署服务器上的页面不加载

7.2.1 详细问题如下:

  • 本地启动:
    在这里插入图片描述
  • 服务器上:
    在这里插入图片描述

7.2.2 问题原因 + 解决问题

  • 问题原因:
    资源路径问题,服务器上路径不对,解决路径即可
  • 解决问题:
    vue.config.js中配置 publicPath:'./' 即可,如下:
    在这里插入图片描述
  • 打包,重新部署问题解决!

8. 项目下载

  • 下载:vue脚手架项目入门demo(vue2).

相关文章:

入门vue——创建vue脚手架项目 以及 用tomcat和nginx分别部署vue项目(vue2)

入门vue——创建vue脚手架项目 以及 用tomcat和nginx分别部署vue项目&#xff08;vue2&#xff09; 1. 安装npm2. 安装 Vue CLI3. 创建 vue_demo1 项目&#xff08;官网&#xff09;3.1 创建 vue_demo1 项目3.1.1 创建项目3.1.2 解决 sudo 问题 3.2 查看创建的 vue_demo1 项目3…...

oracle中的(+)

一、()为何意&#xff1f; oracle中的&#xff08;&#xff09;是一种特殊的用法&#xff0c;&#xff08;&#xff09;表示外连接&#xff0c;并且总是放在非主表的一方。 二、举例 左外连接&#xff1a; select A.a,B.a from A LEFT JOIN B ON A.bB.b; 等价于 select A.a,B.…...

五种永久免费 内网穿透傻瓜式使用

方法一(使用qydev) 官网&#xff1a;点击访问 1、官网 页面&#xff1a;找到客户端下载 2、找到自己电脑或者运行平台对应的版本(我的是windows 64位) 3、下载完成后解压到 自己熟悉的文件内保存&#xff0c;解压后&#xff0c;暂时不管她&#xff0c;继续第4步 4、登录官网…...

【Java基础增强】Stream流

1.Stream流 1.1体验Stream流【理解】 案例需求 按照下面的要求完成集合的创建和遍历 创建一个集合&#xff0c;存储多个字符串元素 把集合中所有以"张"开头的元素存储到一个新的集合 把"张"开头的集合中的长度为3的元素存储到一个新的集合 遍历上一步得…...

reduxreact-redux

redux redux组成部分&#xff1a;state,action,reducer,store store主要职责&#xff1a; 维持应用的state 提供getState()方法获取state 提供dispatch()方法发送action 通过subscribe()来注册监听 通过subscribe()返回值来注销监听 用法&#xff1a; action:必须要有return返…...

go中的并发

goruntine(协程) 每一个并发的执行单元叫做一个goruntine&#xff0c;要编写一个并发任务&#xff0c;可以在函数名前加go关键字&#xff0c;就能使这个函数以协程的方式运行&#xff0c; 如&#xff1a;go 函数名&#xff08;函数参数&#xff09;、 如果函数有返回值&…...

开启EMQX的SSL模式及SSL证书生成流程

生成证书 首先&#xff1a;需要安装Openssl 以下是openssl命令 生成CA证书 1.openssl genrsa -out rootCA.key 2048 2.openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 3650 -subj "/CCN/STShandong/Ljinan/Oyunding/OUplatform/CNrootCA" -out ro…...

4 | Java Spark实现 WordCount

简单的 Java Spark 实现 WordCount 的教程,它将教您如何使用 Apache Spark 来统计文本文件中每个单词的出现次数。 首先,确保您已经安装了 Apache Spark 并设置了运行环境。您需要准备一个包含文本内容的文本文件,以便对其进行 WordCount 分析。 代码 package com.bigdat…...

Redis7安装

1. 使用什么系统安装redis 由于企业里面做Redis开发&#xff0c;99%都是Linux版的运用和安装&#xff0c;几乎不会涉及到Windows版&#xff0c;上一步的讲解只是为了知识的完整性&#xff0c;Windows版不作为重点&#xff0c;同学可以下去自己玩&#xff0c;企业实战就认一个版…...

Nginx vs Tomcat:一个高性能Web服务器和Java应用服务器的对决

Nginx vs Tomcat&#xff1a;一个高性能Web服务器和Java应用服务器的对决 Nginx和Tomcat都是常见的Web服务器解决方案&#xff0c;但它们在设计、适用场景以及性能方面存在一些显著差异。本文将比较这两个解决方案&#xff0c;并探讨它们各自的优势。 1. 设计理念 Nginx&…...

终端登录github两种方式

第一种方式 添加token&#xff0c;Setting->Developer Setting 第二种方式SSH 用下面命令查看远程仓库格式 git remote -v 用下面命令更改远程仓库格式 git remote set-url origin gitgithub.com:用户名/仓库名.git 然后用下面命令生成新的SSH秘钥 ssh-keygen -t ed2…...

【防火墙】防火墙NAT Server的配置

Web举例&#xff1a;公网用户通过NAT Server访问内部服务器 介绍公网用户通过NAT Server访问内部服务器的配置举例。 组网需求 某公司在网络边界处部署了FW作为安全网关。为了使私网Web服务器和FTP服务器能够对外提供服务&#xff0c;需要在FW上配置NAT Server功能。除了公网…...

《算法竞赛·快冲300题》每日一题:“简化农场”

《算法竞赛快冲300题》将于2024年出版&#xff0c;是《算法竞赛》的辅助练习册。 所有题目放在自建的OJ New Online Judge。 用C/C、Java、Python三种语言给出代码&#xff0c;以中低档题为主&#xff0c;适合入门、进阶。 文章目录 题目描述题解C代码Java代码Python代码 “ 简…...

【二等奖方案】大规模金融图数据中异常风险行为模式挖掘赛题「冀科数字」解题思路

第十届CCF大数据与计算智能大赛&#xff08;2022 CCF BDCI&#xff09;已圆满结束&#xff0c;大赛官方竞赛平台DataFountain&#xff08;简称DF平台&#xff09;正在陆续释出各赛题获奖队伍的方案思路&#xff0c;欢迎广大数据科学家交流讨论。 本方案为【大规模金融图数据中…...

C# List与HashSet的contains()方法查询速度比较

List 和HashSet同时查询40万条数据&#xff0c;谁的效率更高&#xff1f; //**1.下面是List底层源码**public boolean contains(Object o) {//如果查到我们想要查询的值则返回一个true&#xff0c;否则返回false&#xff0c;return indexOf(o) > 0;//这里是调用了indexOf方…...

命令执行漏洞复现攻击:识别威胁并加强安全

环境准备 这篇文章旨在用于网络安全学习&#xff0c;请勿进行任何非法行为&#xff0c;否则后果自负。 一、攻击相关介绍 原理 主要是输入验证不严格、代码逻辑错误、应用程序或系统中缺少安全机制等。攻击者可以通过构造特定的输入向应用程序或系统注入恶意代码&#xff…...

Keepalived实现服务器的高可用性

目录 背景方案简介KeepalivedHeartbeat Keepalived技术介绍Keepalived通信方式时间同步 Keepalived配置案例Keepalived日志配置Keepalived服务配置全局配置段VRRP配置段Keepalived服务启动 服务异常检测 背景 在实际应用中&#xff0c;为了提高服务器的高可用性&#xff0c;往…...

Python程序化交易接口批量获取数据源码

小编举例下面是一个简单的示例代码&#xff0c;展示如何使用Python的程序化交易接口批量获取数据&#xff0c;例如开发文档参考&#xff1a;MetaTradeAPI (metatradeapi) - Gitee.com 签名 int Init(); 功能 API 初始化 参数 无 返回值 授权成功的交易账户数量 返回值 &…...

【强化学习】基本概念

基本大概框架 强化学习的主要角色是 智能体 &#xff08;agent&#xff09;和 环境,环境是智能体存在和互动的世界。智能体根据当前的环境做出action&#xff0c;action影响环境。然后智能体根据新的环境再进行action。 基础用语 状态&#xff08;state, s&#xff09;&…...

0001__安装electron失败 postinstall: `node install.js`

不一样的 npm 快速安装electron的方案 - 简书 2、手动下载出错的文件 打开浏览器输入 下述网址&#xff0c; 找到你要的版本号&#xff0c; 点击后找到你的平台点击即可下载了。https://registry.npmmirror.com/binary.html?pathelectron/ 作者&#xff1a;一颗人心 链接&…...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周&#xff0c;有很多同学在写期末Java web作业时&#xff0c;运行tomcat出现乱码问题&#xff0c;经过多次解决与研究&#xff0c;我做了如下整理&#xff1a; 原因&#xff1a; IDEA本身编码与tomcat的编码与Windows编码不同导致&#xff0c;Windows 系统控制台…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】

微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来&#xff0c;Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

P3 QT项目----记事本(3.8)

3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

在Ubuntu中设置开机自动运行(sudo)指令的指南

在Ubuntu系统中&#xff0c;有时需要在系统启动时自动执行某些命令&#xff0c;特别是需要 sudo权限的指令。为了实现这一功能&#xff0c;可以使用多种方法&#xff0c;包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法&#xff0c;并提供…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)

引言&#xff1a;为什么 Eureka 依然是存量系统的核心&#xff1f; 尽管 Nacos 等新注册中心崛起&#xff0c;但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制&#xff0c;是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

Ascend NPU上适配Step-Audio模型

1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统&#xff0c;支持多语言对话&#xff08;如 中文&#xff0c;英文&#xff0c;日语&#xff09;&#xff0c;语音情感&#xff08;如 开心&#xff0c;悲伤&#xff09;&#x…...

什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南

文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/55aefaea8a9f477e86d065227851fe3d.pn…...

python执行测试用例,allure报乱码且未成功生成报告

allure执行测试用例时显示乱码&#xff1a;‘allure’ &#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;ڲ&#xfffd;&#xfffd;&#xfffd;&#xfffd;ⲿ&#xfffd;&#xfffd;&#xfffd;Ҳ&#xfffd;&#xfffd;&#xfffd;ǿ&#xfffd;&am…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)

在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马&#xff08;服务器方面的&#xff09;的原理&#xff0c;连接&#xff0c;以及各种木马及连接工具的分享 文件木马&#xff1a;https://w…...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的

修改bug思路&#xff1a; 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑&#xff1a;async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...