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

nginx部署问题

nginx部署

项目类型资源路径引用方式Nginx 解析方式是否出问题
原生 HTML(/t/)直接使用相对路径,如 ./images/logo.png/t/images/logo.png不会有问题
Vue(/o/)默认使用绝对路径 /assets/index.jsNginx 解析到 /assets/ 而不是 /o/assets/会 4

方案 1:Vue 修改 publicPath(推荐)

module.exports = {
  publicPath: '/o/'  // 让 Vue 知道资源在 /o/ 下面
};
 

方案 2:Nginx 修正 /assets/ 访问路径

如果不想改 Vue 项目,可以让 Nginx 把 /assets/ 请求指向 /o/assets/

如果不想改 Vue 项目,可以让 Nginx 把 /assets/ 请求指向 /o/assets/:

location /assets/ {
    root /usr/share/nginx/html/o;
}

然后 http://47.103.16.236/assets/index.js 其实访问的是:


/usr/share/nginx/html/o/assets/index.js
  • 纯静态 HTML 不会有问题,因为它的资源路径是相对的,不会影响 Nginx 路径解析。
  • Vue 项目 会有问题,因为默认构建出的 index.htmlassets/ 目录是根路径 /,导致 Nginx 找不到资源。
  • 最好的做法修改 Vue publicPath,如果不想改 Vue 项目,就 修改 Nginx location /assets/
server {
    listen 80;  # 监听 IPv4 地址的 80 端口
    listen [::]:80;  # 监听 IPv6 地址的 80 端口
    server_name localhost;  # 设置服务器的主机名为 localhost

    root /usr/share/nginx/html;  # 设置服务器根目录为 /usr/share/nginx/html,所有请求默认从这个目录查找文件

    # 处理 /o/ 路径下的请求
    location /o/ {
        index index.html index.htm;  # 设置默认访问文件为 index.html 或 index.htm
        # 注意:如果 Vue 或其他前端框架使用了 history 模式的路由,这里可能需要增加 try_files 配置
    }

    # 处理 /t/ 路径下的请求
    location /t/ {
        index index.html index.htm;  # 设置默认访问文件为 index.html 或 index.htm
    }

    # 处理 /assets/ 路径下的请求
    location /assets/ {
        root /usr/share/nginx/html/o;  # 设置 /assets/ 请求的根目录为 /usr/share/nginx/html/o
        # 这意味着 /assets/ 目录下的静态资源文件将从 /usr/share/nginx/html/o/assets/ 查找
    }
}

http://www.dtcms.com/a/58170.html

相关文章:

  • 【RocketMQ】二、架构与核心概念
  • Redis- 大key
  • 【深度学习】宠物品种分类Pet Breeds Classifier
  • uniapp+node+mysql接入deepseek实现流式输出
  • mybatis-plus+springboot3项目实现分页
  • 【自学笔记】Numpy基础知识点总览-持续更新
  • linux上安装redis[从0到1]
  • 【AGI】通往AGI的复兴号:模型工具演进与技术路径优化
  • 03特征值分解
  • 软件测试の概念之测试分类质量模型测试用例
  • 渗透测试之利用sql拿shell(附完整流程+防御方案)【上】
  • Visual studio + Qt 项目配置管理
  • UI自动化测试Selenium安装教程(1)
  • 《加快应急机器人发展的指导意见》中智能化升级的思考——传统应急设备智能化升级路径与落地实践
  • 【JavaEE】网络原理
  • FPGA学习篇——Verilog学习5(reg,wire区分及模块例化)
  • 【洛谷P1080国王游戏】2025-3-7
  • K8S学习之基础十三:k8s中ReplicaSet的用法
  • VUE3开发-4、组件引入
  • 《A++ 敏捷开发》- 18 软件需求
  • java 重点知识 — JVM存储模块与类加载器
  • js基本功(五)
  • 【Linux网络#13】:网络层(IP 协议 网络通信 全球网络 路由转发)
  • STM32F4 UDP组播通信:填一填ST官方HAL库的坑
  • 【JAVA架构师成长之路】【电商系统实战】第12集:秒杀系统性能优化实战(CAN + Nginx + Sentinel)
  • Myslq表的内外连接
  • tomcat安装
  • [数据抓取] Python 网络爬虫 - 学习手册
  • WIFI ESP8266以及基础功能介绍
  • Python环境安装(3.8)