Nginx 配置静态文件404问题

nginx部署前端vue项目 Nginx是一个功能强大、性能高效的Web服务器,非常适合用于部署前端Vue项目。然而,对于初学者来说,可能需要一定的时间来熟悉其配置和高级功能。 阅读详情
AI摘要

本文解决了使用Nginx作为图片服务器时配置不当导致图片访问出现404错误的问题。通过对比root与alias的不同用法,阐述了如何正确配置静态资源路径。

使用Nginx做图片服务器时候,配置之后图片访问一直是  404.
我的配置是
location /api/v1/upload {
     root /opt/edu/upload;
}



文件放在 
/opt/edu/upload  目录下。

访问

http://localhost/api/v1/upload/api/v1/upload/course/logo/44242acc58f2465c8daf53a2a8b1ec70_add.png

一直是404
日志也是接收到了。但是就是404
10.20.5.247 - - [09/May/2017:13:35:57 +0800] "GET /api/v1/upload/course/logo/44242acc58f2465c8daf53a2a8b1ec70_add.png HTTP/1.1" 404 571 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36" "-"




最后发现配置的问题。配置静态路径的两种方式。之前静态的都是直接在URL里写根目录,
所以一直没发现。今天写了一个有前缀的URL,就出现了。


RootCause:

root 配置的意思是,会在root配置的目录后跟上URL,组成对应的文件路径。
即我的访问
http://localhost/api/v1/upload/api/v1/upload/course/logo/44242acc58f2465c8daf53a2a8b1ec70_add.png
最终去寻找的文件路径是
/opt/edu/upload/api/v1/upload/course/logo/44242acc58f2465c8daf53a2a8b1ec70_add.png
而我想要的是
/opt/edu/upload/course/logo/44242acc58f2465c8daf53a2a8b1ec70_add.png

而Nginx提供了另外一个静态路径配置  : alias
alias与root区别
  • 官方root
    1
    2
    3
    4
    
    Sets the root directory for requests. For example, with the following configuration
    location /i/ {
        root /data/w3;
    }
    

The /data/w3/i/top.gif file will be sent in response to the “/i/top.gif” request

  • 官方alias
    1
    2
    3
    4
    
    Defines a replacement for the specified location. For example, with the following configuration
    location /i/ {
        alias /data/w3/images/;
    }
    

on request of “/i/top.gif”, the file /data/w3/images/top.gif will be sent.

当访问/i/top.gif时,root是去/data/w3/i/top.gif请求文件,alias是去/data/w3/images/top.gif请求,也就是说
root响应的路径:配置的路径+完整访问路径(完整的location配置路径+静态文件)
alias响应的路径:配置路径+静态文件(去除location中配置的路径)

最终解决访问:
修改配置为

location /api/v1/upload {
     alias /opt/edu/upload/;
}


注意
  1. 使用alias时目录名后面一定要加“/”
  2. 一般情况下,在location /中配置root,在location /other中配置alias
















PHP(FastCGI)在Nginx的alias下出现404错误的解决方法 本文讲述了PHP(FastCGI)在Nginx的alias下出现404错误的解决方法。分享给大家供大家参考,具体如下: 在Nginx的官方wiki中如下描述 The alias directive cannot be used inside a regex-specified location. If you need to do this you must use a combination of rewrite and root. 在实际使用中alias下面的php返回404,而html确可以正常显示,解决方法如下 location / { root /opt/www/htdocs/ww 立即下载

相关推荐

python:numpy分享(保姆级教程)

创建数组:array和ndarray、rand()、randn()、arange()、randint()、uniform()astype()基础函数:ceil()、floor()、rint()、argmax()、argmin()、cumsum()、cumprod()numpy 是数据分析必不可少的第三方库,具有高性能的特点,多用于做数组分析。内置函数:ceil()、floor()、rint()主要用于数组计算,支持多维数组。array和ndarray。比较函数:all、any。去重函数:unique。

sulin123123的博客 1730

nginx代理静态资源返回404问题解决过程

nginx server_name匹配规则

weixin_45087884的博客 1万+

告别代码恐惧!用KRobot图形化编程,10分钟搞定Arduino巡线小车(附完整接线图)

本文介绍如何使用KRobot图形化编程工具快速搭建Arduino巡线小车,无需编写代码。从硬件准备到逻辑构建,详细讲解传感器数据处理、电机控制优化及高级功能扩展,帮助教育工作者和创客爱好者10分钟内完成项目。

weixin_30632089的博客 394

使用Nginx访问图片报404

root和alias的区别 root解析时包含location后面的url; alias解析时location不包含后面的url;

ITKidKid的博客 5733

实测对比:DECIMER、Img2Mol、MolScribe,哪个化学结构识别工具更靠谱?

化学结构识别(CSR)工具的核心任务是将分子结构图像转换为SMILES(Simplified Molecular Input Line Entry System)表示。这一过程需要克服图像质量差异、绘制风格变化以及特殊基团识别等挑战。三款工具采用不同的技术路线:DECIMER:基于EfficientNetV2+Transformer架构,优势在于处理标准期刊文献中的分子图示Img2Mol。

weixin_32576389的博客 346

工业预测模型避坑指南:PHM2012轴承数据实战中,LSTM、CNN、Transformer到底怎么选?

本文深入探讨了工业预测模型在PHM2012轴承数据下的选型策略,对比了LSTM、CNN和Transformer等主流模型在轴承寿命预测任务中的表现。通过真实实验数据,提供了可复现的选型决策框架,帮助工程师根据数据规模、硬件条件和精度要求选择最佳模型。文章还揭示了工程落地中的隐藏陷阱,如数据不均衡和工况迁移挑战,并提出了解决方案。

weixin_33694172的博客 493

nginx alias 同一端口下配置多个项目,刷新404的问题

nginx配置多个项目,用alias指向项目路径,try_files要加包名,否则刷新404,如果是root指定包的路径 直接 try_files $uri $uri/ /index.html;

我的博客 2333

使用Qt和MX Component插件实现与菱PLC的通信

在本文中,我们介绍了如何使用Qt和MX Component插件实现与菱PLC的通信。我们首先安装和配置了MX Component插件,并在Qt项目中初始化和使用MX Component来连接、读取和写入PLC的数据。安装完成后,您需要在Qt项目中配置MX Component的路径,以便Qt可以找到所需的库文件。在本文中,我们将探讨如何使用Qt和MX Component插件来实现与菱PLC的通信。在主函数中,我们将初始化MX Component,并创建一个与PLC通信的示例。在上面的代码中,我们使用了。

TlScratch的博客 996

nginx配置访问本机文件夹里的静态资源404

因为是直接使用的yum安装的二进制包nginx,nginx.conf文件首行是user nginx;在nginx中配置了location访问一直404。看日志发现Permission denied。改为user root;

qq_31839075的博客 2496

一文吃透 ABAP CDS SELECT:语法全景、关联与去重、可运行示例与实战心法

摘要: 本文深入解析ABAP中CDS视图的SELECT语法,重点介绍两种等价写法、关联与路径表达式优化、DISTINCT去重逻辑及WHERE/GROUP BY/HAVING/UNION等子句的应用。通过可运行的业务伙伴角色去重、关联路径查询及多角色筛选示例,演示如何将CDS特性转化为项目实践。强调关联复用性优于传统JOIN,并指出DISTINCT的权限边界与误用场景,帮助开发者从行式思维转向图式数据建模。(150字) 关键词: ABAP CDS、SELECT语法、路径表达式、DISTINCT去重、关联复用

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 392

STM32 cubeMX配置串口重定向

这篇文章主要讲解什么是串口重定向,为什么要串口串口重定向。使用printf函数和上位机通信是非常的方便的。希望大家都能够掌握。

m0_49476241的博客 4572

Nginx的静态文件Html配置及404问题

1111

橡皮博客 9320

使用STM32H7点亮RGB屏幕

希望本文能对你有所帮助!RGB屏幕是一种具有红、绿、蓝三种颜色通道的显示设备,通过控制每个通道的亮度,可以显示出丰富多彩的图像和动画。要使用STM32H7控制RGB屏幕,我们需要连接适当的引脚,并编写适当的代码来控制每个颜色通道的亮度。在主循环中,我们先点亮红色通道,然后延迟一段时间,接着点亮绿色通道,再延迟一段时间,最后点亮蓝色通道,并再次延迟。需要注意的是,示例代码中的延迟循环使用了一个简单的计数器实现,但实际应用中可能需要更精确的延迟方式,例如使用定时器中断或操作系统提供的延迟函数。

QoyOle的博客 924

Nginx 配置静态文件 404 问题

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34161029的博客 745

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

nginx alias php 404,Nginx 配置静态文件404问题

weixin_39639096的博客 213

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

nginx访问静态文件404问题

修改nginx.conf配置文件的 listen为81

qq_34651407的博客 1065

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Docker Nginx js,css文件404问题排查解决

1. 问题现象 如上图所示 静态文件404 2. 问题排查&解决 首先考虑文件本身的引用路径是否匹配nginx的配置 引入路径 <link href="/public/css/bootstrap.css" rel="stylesheet"/> nginx 配置 (root 配置代替你的域名) #js模块 ​​location ~* \.(ico|css|js|gif|jpe?g|png)(\?[0-9]+)?$ { root /www/work.

memoryof_you的博客 6780

Nginx部署Vue项目静态文件404解决方案

简述:数据接口请求正常,也能正常返回数据,静态文件请求404问题解决方案;

蹦哒哒的王小哲 8663

Nginx 静态文件反向代理

文章目录一、反向代理之 `/` 的玄学二、反向代理之 "静态文件" 的处理 一、反向代理之 / 的玄学 代理路径后面加上 / http://www.rambo123.com/demo 访问 http://www.rambo123.com location /demo/ { # 注意后面加上反斜杠 proxy_pass http://www.rambo123.com/; } http://www.rambo123.com/demo/user 代理到 http://www.ramb

Rambo's Blog 2537

解决:Docker镜像运行+Nginx访问出现的静态资源404错误

一、问题背景: Docker部署的应用需要上传文件,上传的静态文件需要通过nginx访问,出现nginx访问404问题! 二、解决方案: 1、docker部署应用时,将文件上传的目录挂载到宿主机的对应目录上。例如:应用上传到【/oss/home】中,将这个目录映射到主机的对应的【/oss/home】目录上,docker命令如下: docker run -d -p 8082:8082 \ ...

进修的CODER 1万+
上一篇: Linux7 下Hadoop集群用户管理方案之五 安装Hadoop集群遇到的坑
下一篇: Hive 解决中文分区问题 Illegal mix of collations (latin1_bin,IMPLICIT) and (utf8_general_ci,COERCIBLE) for
line_aijava
博客等级 码龄16年 31粉丝 47原创
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值