Windows系统下使用nginx部署vue2项目的全过程

下面是Windows系统下使用nginx部署vue2项目的全过程的攻略:

1. 搭建Node.js环境并安装vue-cli

要部署vue2项目,我们需要先安装Node.js环境。建议下载最新的LTS版本,下载链接:https://nodejs.org/en/

安装完成后,使用npm工具来安装vue-cli命令行工具,命令如下:

npm install -g vue-cli

2. 创建vue项目并编译打包

使用vue-cli可以快速创建一个vue项目,命令如下:

vue init webpack my-project

这里我们创建了一个名为my-project的vue项目,目录结构如下:

my-project
├── build
├── config
├── node_modules
├── src
├── static
├── .babelrc
├── .editorconfig
├── .gitignore
├── .postcssrc.js
├── index.html
├── package-lock.json
└── package.json

接着进入项目根目录中,安装依赖并编译打包:

cd my-project
npm install
npm run build

编译打包后,会生成一个dist目录,里面包含了我们的静态资源文件。

3. 安装nginx

接下来需要安装nginx服务器,可以在官网下载Windows版本Nginx - Official Page,选择Latest Mainline version即可。

下载完成后,将解压得到的nginx目录放在自己喜欢的位置(如D:\nginx)。在nginx目录下有一个conf子目录,里面包含了nginx的配置文件。我们现在需要修改配置文件。

4. 配置nginx

首先进入conf子目录,找到nginx.conf文件。使用编辑器打开这个文件,如果你仔细阅读这个文件,会发现其中已经包含了一段server配置:

server {
    listen       80;
    server_name  localhost;

    location / {
        root   html;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}

我们需要修改这段配置,使得nginx可以指向我们生成的dist目录。

首先,将location /块改成以下内容:

location / {
    root   D:/nginx/html;
    index  index.html index.htm;
}

这里将nginx的根目录指向了D:/nginx/html目录。这个目录实际上是我们后面需要手动创建的。接着,添加以下代码:

location /api/ {
    proxy_pass http://localhost:3000/;
    proxy_set_header Host $host;
}

这段代码的作用是,如果请求的url包含/api/,则将请求转发到本地的3000端口。

5. 部署vue项目

将刚才编译得到的dist目录中的文件复制到D:/nginx/html目录中。此时,nginx服务器已经可以正常访问了。

6. 运行Node.js服务器

如果我们的vue项目中需要与后端服务器交互,需要运行一个Node.js服务器。这里以一个简单的示例来说明。

首先,我们需要安装express和body-parser这两个npm包,命令如下:

npm i express body-parser

接着,在vue项目根目录下新建一个server.js文件,代码如下:

const express = require('express')
const bodyParser = require('body-parser')
const app = express()

// Middleware to parse incoming request bodies
app.use(bodyParser.json())

// A simple endpoint to return a JSON response
app.get('/api/hello', (req, res) => {
  res.json({ message: 'Hello from the server!' })
})

// Start the server on port 3000
app.listen(3000, () => {
  console.log('Server started on port 3000')
})

代码中的注释已经说明了各个部分的功能。这里,我们只是简单地提供了一个/api/hello接口,返回一段JSON响应。为了让nginx可以转发请求到这个Node.js服务器上,我们需要运行这个服务器,在项目根目录下执行以下命令:

node server.js

至此,整个部署过程已经完成。

示例

假设这个vue项目中有一个路由,需要访问我们刚才写的/api/hello接口。我们的URL是http://localhost:8080/hello,这是我们在vue项目中的代码:

import axios from 'axios'

export default {
  methods: {
    async fetchData() {
      const response = await axios.get('/api/hello')
      this.message = response.data.message
    }
  },
  data() {
    return {
      message: ''
    }
  },
  created() {
    this.fetchData()
  }
}

这里的axios请求url是/api/hello,而不是http://localhost:3000/api/hello。这是因为nginx在接收到URL为/api/开头的请求时,会将这个请求转发到本地的3000端口上。而/vue2/前缀则是我们在nginx配置文件中指定的。

这样的话,我们启动nginx和Node.js服务器,即可访问http://localhost:8080/hello接口,并获得来自Node.js服务器的响应。

而在服务器端,如果我们需要访问vue项目中的静态资源文件,可以通过http://localhost:8080/来访问。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Windows系统下使用nginx部署vue2项目的全过程 - Python技术站

(0)
上一篇 2023年5月25日
下一篇 2023年5月25日

相关文章

  • Go-RESTful实现下载功能思路详解

    Go-RESTful实现下载功能思路详解 简介 在Web应用程序中,下载功能通常是必需的功能之一。Go是一种功能强大的编程语言,使用它实现RESTful API来实现下载功能非常高效、方便和可靠。在本文中,我们将深入讨论如何使用Go-RESTful库实现下载功能。 步骤 本文将介绍三个主要步骤来实现下载功能: 定义RESTful路由 打开文件并将其发送到客户…

    人工智能概览 2023年5月25日
    00
  • Nginx服务器下配置使用索引目录的教程

    关于在 Nginx 服务器上配置并使用索引目录,以下是一份完整攻略: 步骤一:检查 Nginx 服务器的配置文件 首先,需要进入服务器的 Nginx 配置文件所在的目录,一般位于 /etc/nginx/ 目录下。检查是否存在一个 nginx.conf 文件,如果文件不存在,需要安装 Nginx 并创建配置文件。 步骤二:配置 Nginx 服务器以支持索引目录…

    人工智能概览 2023年5月25日
    00
  • pycharm debug功能实现跳到循环末尾的方法

    接下来我就详细地讲解一下 PyCharm 中 debug 功能实现跳到循环末尾的方法。 设置断点在 PyCharm 中,我们可以通过单击代码左侧的空白区域,来设置断点。 当程序运行到该处时,代码会停止执行,允许我们使用 debug 功能。 启动 debug 模式我们可以通过单击运行工具栏中的 debug 按钮,或者使用快捷键 Shift + F9 来启动 d…

    人工智能概览 2023年5月25日
    00
  • python实现学员管理系统(面向对象版)

    下面我来详细讲解“Python实现学员管理系统(面向对象版)”的攻略。 系统介绍 本系统基于Python面向对象编程实现,能够实现对学员的管理,包括添加学员、删除学员、查看学员列表、修改学员信息等功能。本系统采用了文本文件存储数据的方法,每个学员的信息都存储在一个独立的文本文件中。 系统功能 本系统实现了如下功能: 添加学员信息; 删除学员信息; 修改学员信…

    人工智能概览 2023年5月25日
    00
  • windows安装mongodb6.x并设置用户名密码的详细过程

    下面是详细讲解“Windows安装MongoDB6.x并设置用户名密码的详细过程”的完整攻略。 安装MongoDB6.x 打开MongoDB官网(https://www.mongodb.com/),在页面右上角点击“Get MongoDB”进入下载页面。 在下载页面中选择“Community Server”,根据系统版本选择下载对应的安装包。在下载过程中,需…

    人工智能概览 2023年5月25日
    00
  • Django之模板层的实现代码

    下面是“Django之模板层的实现代码”的完整攻略。 什么是Django模板层? Django的模板层是将用户数据和视图层之间的交互进行分离的一种方式。通过Django模板层,我们可以将页面渲染的代码分离到一个单独的文件中,从而减少代码混杂和代码冗余的问题,提高了代码的可维护性和可读性。 Django模板层如何实现 Django的模板层是由一些Python类…

    人工智能概论 2023年5月25日
    00
  • zookeeper概述图文详解

    Zookeeper概述图文详解 什么是Zookeeper? Zookeeper是一种开放源代码的分布式协同服务,其主要功能是维护同时多达数百个进程间的协同动作。 Zookeeper提供以下功能: 配置管理:save/update 命名服务:节点注册与查找 分布式锁 故而通常Zookeeper被作为实现其它分布式服务的基础服务,例如Hadoop、HBase等等…

    人工智能概览 2023年5月25日
    00
  • pytorch 实现在一个优化器中设置多个网络参数的例子

    下面是 PyTorch 实现在一个优化器中设置多个网络参数的例子的完整攻略: 定义模型和优化器 在定义模型时,需要注意将不同的模型层分别定义在不同的变量中以便之后使用。 在定义优化器时,可以使用 nn.Parameter 函数将模型中的需要优化的参数设置为可训练。另外,为了区分不同层级的参数(如不同的层级可能需要不同的学习速率),可以使用 nn.Module…

    人工智能概论 2023年5月25日
    00
合作推广
合作推广
分享本页
返回顶部