解决Vue用Nginx做web服务器报错favicon.ico 404 (Not Found)的问题
有多种解决方案
1、vue静态资源
vue中为网页增加favicon的最便捷的方式为使用link
标签
<link rel="shortcut icon" type="image/x-icon" href="./static/favicon.ico" rel="external nofollow" />
先在static目录下添加favicon,至于为什么要在static下加,待会解释
然后,在index.html入口加上引入的link标签
<link href="./static/favicon.ico" mce_href="./static/favicon.ico" rel="icon" type="image/x-icon">
然后build打包即可,就不会再报这个错误。
解释:
从href
属性我们可以知道,这个favicon.ico文件被放在static文件夹下。那可不可以像平时的网页那样放在根目录下呢?
本人测试为false。比如我把其放在src/assets下面,bulid出来发现没有这个favicon.ico这个文件。
使用vue-cli构建vue项目的最后一步为build,
build后得到一个dist文件夹,目录如下:
dist
├── index.html
└── static
├── css
│ ├── app.98d86b95fddce7c6712349c91fd3ac42.css
│ └── app.98d86b95fddce7c6712349c91fd3ac42.css.map
├── favicon.ico
├── img
│ └── icon.b36fe83.png
└── js
├── app.8fece2e344934ca56814.js
├── app.8fece2e344934ca56814.js.map
├── manifest.1f0d87f2abce4b6b3d40.js
├── manifest.1f0d87f2abce4b6b3d40.js.map
├── vendor.6e85d686677580e84eb8.js
└── vendor.6e85d686677580e84eb8.js.map
当将这个文件放在根目录下的时候,build出来的项目里不会含有favicon.ico文件。
从static的字面意思来讲,静态的,除了文件的静态性,还包含有文件路径的静态性。build前后index.html都有同级目录的static文件夹,因此build前后引用的路径不会发生改变。个人猜测跟webpack的打包方式有关,它会去拷贝一个static文件夹,然后在往里面添加打包后的文件(不知这样理解的是否正确)。
2、nginx配置
Nginx的error日志中会定期抱怨说没有找到favicon.ico文件?发生这种错误的原因一般是Nginx在根目录上找不到这个文件。我们可以在网上下载一个ico文件放在根目录下面就可以了。
但是现在的业务场景有些区别:我使用Nginx作为前台服务器,在80端口接收所有的http请求,对本地能缓存的资源直接提供服务,否则转发到upstream上的其他服务器处理,比如转给fastDFS,或者是ATS等等。
我现在在根目录下存放一个ico文件,如何让Nginx直接去本地拿这个文件,而不转发给其他服务器呢?直接在nginx.conf中增加下面一行就可以了:
# set site favicon
location /favicon.ico {
root html;
}
这样就可以正常看到ico图标了。
解决Vue用Nginx做web服务器报错favicon.ico 404 (Not Found)的问题的更多相关文章
- Nginx是什么,有什么优点?为什么选择Nginx做web服务器软件?(经典经典)
1.基础知识 代理服务器: 一般是指局域网内部的机器通过代理服务器发送请求到互联网上的服务器,代理服务器一般作用在客户端.应用比如:GoAgent,FQ神器. 一个完整的代理请求过程为:客 ...
- Nginx做web服务器反向代理
实验目的 通过nginx实现反向代理的功能,类似apache反向代理和haproxy反向代理 工作中用nginx做反向代理和负载均衡的也越来越多了 有些公司从web服务器到反向代理,都使用nginx. ...
- 全局解决Vue跳转相同路由导致报错的问题
大家使用Vue做开发的时候应该都遇到过这个问题,就是某个页面下调用this.$router.push(path),而path指向的页面和当前页面是同一页面时,就会发生报错,vue-router会提示你 ...
- 死磕nginx系列--nginx服务器做web服务器
nginx 做静态服务器 HTML页面如下 <!DOCTYPE html> <html lang="en"> <head> <meta c ...
- Nginx作为web服务器
为什么选择Nginx,nginx有诸多优点: nginx是轻量级web服务器,支持AIO.mmap.event-driven,解决了c10k问题.虚拟主机.基于名字和IP访问.nginx平滑升级 .热 ...
- 《Nginx高性能Web服务器》系列分享专栏
<Nginx高性能Web服务器>系列分享专栏 [作者:Poechant] Nginx是目前最流行的基于BSD-like协议.轻量级.高性能的HTTP服务器.反向代理服务器和电子邮件(SMT ...
- nginx高性能WEB服务器系列之九--nginx运维故障日常解决方案
nginx系列友情链接:nginx高性能WEB服务器系列之一简介及安装https://www.cnblogs.com/maxtgood/p/9597596.htmlnginx高性能WEB服务器系列之二 ...
- nginx高性能WEB服务器系列之七--nginx反向代理
nginx系列友情链接:nginx高性能WEB服务器系列之一简介及安装https://www.cnblogs.com/maxtgood/p/9597596.htmlnginx高性能WEB服务器系列之二 ...
- nginx高性能WEB服务器系列之六--nginx负载均衡配置+健康检查
nginx系列友情链接:nginx高性能WEB服务器系列之一简介及安装https://www.cnblogs.com/maxtgood/p/9597596.htmlnginx高性能WEB服务器系列之二 ...
随机推荐
- poj2243 Knight Moves(BFS)
题目链接 http://poj.org/problem?id=2243 题意 输入8*8国际象棋棋盘上的两颗棋子(a~h表示列,1~8表示行),求马从一颗棋子跳到另一颗棋子需要的最短路径. 思路 使用 ...
- 【转载】okhttp源码解析
转自:http://www.open-open.com/lib/view/open1472216742720.html https://blog.piasy.com/2016/07/11/Unders ...
- Python类总结-ClassMethod, StaticMethod
classmethod-把classmethod装饰的方法变成为类中的方法 作用: 把classmethod装饰的方法变成为类中的方法,这个方法直接可以被类调用,不需要依托任何对象 应用场景: 当这个 ...
- Redis学习与总结
Redis是业界普遍应用的缓存组件,研究一个组件框架,最直观的办法就是从应用方的角度出发,将每个步骤的考虑一番,从这些步骤入手去研究往往能够最快的体会到一个组件框架的设计哲学.以Redis为例,每当发 ...
- 初探 Spring Boot
近些年Spring Boot都特别火,一直都想来学习学习,奈何近期公司项目繁忙,一直都没有时间来学习,今天终于是休息一天,于是来一睹 SpringBoot 的风采. 一.什么是Spring Boot ...
- 我的OI生涯 第六章
开学了,但是我们并没有像一个正常的高二学生一样坐在教室里接受调研考试的洗礼. 暑假作业这种东西早已被甩在一旁,可以想象回去补文化课时该有多么狼狈. 大王给我们制定了周密的计划,每周两次测试,加上蔡老师 ...
- [ZROI 9.15模拟赛] Tutorial
Link: 传送门 可能要补一补之前的题了 题目名字天(Sky)的(De)炭(C)好评啊…… A: 从买/卖物品的配对来考虑: 可以发现如果当前物品为卖,肯定从之前选最小的(无论其为买/卖),因为贡献 ...
- PHP_EOL 换行符
换行符unix系列用 \nwindows系列用 \r\nmac用 \rPHP中可以用PHP_EOL来替代,以提高代码的源代码级可移植性 如: <?php echoPHP_EOL; ...
- MySQL注射绕过技巧(二)
这次说到注入时空格的过滤 ①注释绕过空格 我们在查看user()的时候需要用到空格 如: select user(): 然后我们用 /**/ 来绕过 ②加号绕过空格(不太建议使用除个别情况) 其实 ...
- Codeforces Beta Round #10 D. LCIS 动态规划
D. LCIS 题目连接: http://www.codeforces.com/contest/10/problem/D Description This problem differs from o ...