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日

相关文章

  • Django如何继承AbstractUser扩展字段

    我可以为你详细讲解如何在Django中继承AbstractUser模型扩展字段的攻略。下面是详细步骤: 1.创建一个新的User模型 首先,在你的Django项目中,需要先创建一个新的User模型。可以在models.py文件中定义这个新模型。通过继承AbstractUser类创建一个新的User类。这个新类将继承AbstractUser的所有功能和属性,同…

    人工智能概论 2023年5月24日
    00
  • Pytorch中的VGG实现修改最后一层FC

    下面是PyTorch中修改VGG网络最后一层全连接层的攻略: 步骤一:导入相关库 首先需要导入相关的PyTorch库,主要包括: torch:PyTorch的核心库; torchvision:PyTorch的图像处理库,提供了很多常用的卷积神经网络的实现,包括VGG等; nn:PyTorch中的神经网络模块,用于构建神经网络模型。 步骤二:定义VGG模型 导…

    人工智能概论 2023年5月25日
    00
  • Android studio 下JNI编程实例并生成so库的实现代码

    下面详细讲解“Android studio 下JNI编程实例并生成so库的实现代码”的完整攻略。 简介 首先,你需要了解一下JNI的概念。Java Native Interface,即Java本地接口,可以让Java代码调用C/C++语言编写的函数库,使得Java程序可以直接调用C/C++函数进行相关的操作。在Android开发中,JNI可以让我们实现高效的…

    人工智能概览 2023年5月25日
    00
  • 基于Python检测动态物体颜色过程解析

    基于Python检测动态物体颜色过程解析 前言 本攻略将介绍如何利用Python对动态物体颜色进行检测的过程。本攻略不涉及详细的Python基础知识讲解,假定读者已经对Python语法和OpenCV图像处理库有一定的了解。 目标 通过本攻略,读者将能够学习到:- 如何读取视频文件- 如何对视频中的帧进行处理- 如何使用HSV颜色空间进行检测- 如何利用形态学…

    人工智能概论 2023年5月24日
    00
  • Laravel 5 框架入门(一)

    Laravel 5 框架入门(一) Laravel 是一款优秀的 PHP Web 框架,能够帮助开发者快速构建现代化的 Web 应用程序。本文将从安装 Laravel 开始,详细介绍 Laravel 框架的使用方法。 环境要求 要使用 Laravel 5,您需要满足以下环境要求: PHP 版本 7.2.0 或更高版本 BCMath PHP 扩展 Ctype …

    人工智能概览 2023年5月25日
    00
  • Python通过Django实现用户注册和邮箱验证功能代码

    下面我将为您详细讲解“Python通过Django实现用户注册和邮箱验证功能代码”的完整攻略。 1. 环境搭建 在使用Django开发之前,需要先安装Python和Django。可以通过以下步骤来安装: 安装Python 对于Windows系统,可以在Python官网(https://www.python.org/downloads/)中下载安装包进行安装。…

    人工智能概论 2023年5月24日
    00
  • 最新SpringCloud Stream消息驱动讲解

    下面我将详细讲解“最新Spring Cloud Stream消息驱动讲解”的完整攻略。 一、前言 Spring Cloud Stream是Spring Cloud生态中提供的消息驱动框架。在Spring Cloud Stream中,一个系统可以充当生产者或消费者来与消息中间件通信,而Spring Cloud Stream则提供了抽象层来屏蔽不同消息中间件实现…

    人工智能概览 2023年5月25日
    00
  • SpringCloud Config配置中心原理以及环境切换方式

    一、Spring Cloud Config配置中心原理简介 Spring Cloud Config是一个基于Spring Boot的配置管理工具,它提供集中的外部配置管理解决方案。通过Spring Cloud Config,我们可以将应用程序的配置中心独立出来,不必被绑定到特定的开发、测试、生产环境,这样我们就能够将配置独立存储并管理,方便随时更新,做到配置…

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