解决nginx静态资源无法预览只能下载的问题

项目需求:用户登录web系统之后,如果有系统新消息产生,需用提示音告知用户,并且用户可以上传自己的个性化提示声音。
解决方案:用nginx静态代理ftp服务器上的音频文件,用户上传音频文件到ftp目录下,前端直接用URL访问音频文件即可。

出现的问题

nginx静态资源代理设置好之后,访问资源时出现一个迷死人的bug:
1、项目中用URL访问音频文件无法访问,F12调试发现http响应码为206(这个206问题我百度的很多解决方案都是说是因为http支持断点续传功能之类的,是因为nginx日志太大引起的,但其实我的nginx日志文件只有几百K,而且我也清日志了,问题还是没解决);
2、直接在浏览器输入URL访问音频文件,浏览器直接下载了文件,不能预览

不过,经过我的艰苦奋斗,终于找到了解决方法!

出现这一问题的原因是:我上传的音频文件是mav格式的,nginx的mime.types中没有配置支持mav格式的音频,所以我无法预览只能下载!

解决方案有两种:
1、在mime.types中加入对mav格式音频的支持
2、你的音频文件使用mime.types中支持的格式,比如MP3格式。

好了,记录一下痛苦的解决非代码bug的过程!

解决nginx静态资源无法预览只能下载的问题场景介绍项目需求:用户登录web系统之后,如果有系统新消息产生,需用提示音告知用户,并且用户可以上传自己的个性化提示声音。解决方案:用nginx静态代理ftp服务器上的音频文件,用户上传音频文件到ftp目录下,前端直接用URL访问音频文件即可。出现的问题nginx静态资源代理设置好之后,访问资源时出现一个迷死人的bug:1、项目中用URL访问... 在用 nginx 做文件 服务器 时, 前端 要做一个 下载 功能,文件的访问为 nginx 做代理指向静态文件,这时部分类型的文件——例如:img、txt等浏览器能 直接 打开的文件会 直接 打开文件而不是 下载 文件。这里使用第三方js,提供 解决 办法。 下载 download.js(官网) 页面中引入此js文件。 使用js发送请求,请求地址为访问文件的地址 var ajax = new XMLHttpRequest(); //path为 静态资源 访问路径 ajax.open("GET", path, true 解决 nginx 浏览.php文件变成 下载 Nginx 浏览.php文件变成 下载 :这是因为 nginx 没有设置好碰到php文件时,要传递到后方的php解释器。 看看你的 nginx .conf配置,里面有没有这样的设置:  location ~ .*\.php$ { fastcgi_pass 127.0... 部署了 nginx ,测试页面访问正常,添加了mp4支持模块后mp4 无法 播放 排查过程: . 用开源flash jw 播放视频, 无法 播放,怀疑flash的 问题 ,查看mp4扩展模块官方的例子,用那个flash(其实也是jw)测试,还是 无法 播放,抓包发现是没有crossdomain.xml   观察其他视频网站的crossdomain.xml的编写方法,添加crossdomain.xml,...
nginx 也可用来作为附件 服务器 使用,毕竟 nginx 对静态文件支持较好,那么 直接 贴网址 直接 访问想 下载 ,但是 问题 就来了,各大浏览器都针对,图片 txt,pdf,都是 直接 打开的,没法弹出另存为按钮。 解决 思路就是,告诉浏览器这个文件需要 下载 而不是 直接 打开 1、 下载 方式 使用 Nginx 时,如果要让一些附件比如 txt,pdf,doc等不 直接 在浏览器打开,而是 弹出另存为的对话框(也就是 下载 ) 则可以在 nginx 的加上头配置如下: 代码如下: if ($request_filename ~* ^.*?\.(tx.
这里主要有两行代码。 第一行: include mine.types 对应了文件的mime类型。 第二行: 默认的是octet-stream, 意思是如果一个文件的mime类型不存在就会使用默认的类型。 通常是这个导致了文件的 下载 解决 方法: 将 default_type application/octet-stream; 修改为
以下是根据我个人出现的 问题 所采取的 解决 办法,希望能够给大家一个参考。具体情况还得根据不同 问题 处理。 配置 Nginx 服务器 之后,打开虚拟域名,是 直接 下载 而不是 直接 打开网页,是因为配置的 Nginx 无法 解析PHP的原因。 根据我出现的 问题 ,我的 解决 办法如下: 1.打开 nginx .conf配置文件,我的如下(与解析PHP相关的片段): 红圈那句话很重要,指明 nginx 与fastcgi交互的id...
当我们使用 Nginx 时,如果要让一些附件比如txt,pdf,doc等不 直接 在浏览器打开,而弹出另存为的对话框(也就是 下载 ),则可以在 nginx 里添加如下配置: [code="java"] location / if ($request_filename ~* ^.*?\.(txt|doc|pdf|rar|gz|zip|docx|exe|xlsx|ppt|pptx)$){ add_h...
基于 Nginx + Java(SpringBoot) 实现带权限验证的静态文件 服务器 ,支持文件 下载 、PDF 预览 和图片 预览 。 需要注意的是,无需权限判断的图片不建议使用此方法,大量的图片访问会增加后台 服务器 的处理压力。 一、实现原理 本质上是使用了X-Sendfile功能来实现,X-Sendfile是一种将文件 下载 请求重定向到Web 服务器 处理的机制,该Web 服务器 只需负责处理请求(例如权限验证),而无需执行读取文件并发送给用户的任务。 X-S..
这里讲一下我自己在玩 服务器 时遇到的坑,具体的 解决 办法肯定很多,毕竟自己不是专业的运维和Linux高手,只是将自己遇到的 问题 分享出来,仅供参考 前几天在 服务器 上部署自己写的一个小项目,通过tomcat进行发布,但是又不想暴露8080端口,于是通过ngnix进行代理 解决 ,但是在项目部署完成时发现 静态资源 和更新数据到数据库时发现没有成功 在图中是使用域名 直接 访问,代理到tomcat8080端口,但是这个是有 问题 的, 静态资源 和数据更新是无效的不能真正的传递到tomcat 服务器 ,然后通过这样就可以进行访问,url中
直接 查看server块配置 到这里就搭建好了简单的文件服务,可以在浏览器中输入ip或域名访问目录文件了。 如果不希望自己的文件被他人所 下载 和访问,可以增加一下身份验证。幸运的是, Nginx 已经为我们提供了简单的身份认证的功能,开箱即用。模块允许通过使用“HTTP基本认证”协议验证用户名和密码来限制对 资源 的访问。 访问还可以根据地址、子请求的结果或JWT进行限制。同时通过地址和密码限制访问由满足指令控制。在块中添加以下配置: 为了安全考虑, 功能必须在起“用户名:密码”文件中使用经过 Hash 的