Javascript 在Express/Node.js中使用favicon中间件的优势是什么?
我想在我的网站上添加一个favicon(用带有Node.JS和Express的JavaScript编写)。internet上的资源指向使用favicon服务中间件。Express生成器还包括这个中间件 目前,我正在使用以下代码行提供静态文件Javascript 在Express/Node.js中使用favicon中间件的优势是什么?,javascript,node.js,express,favicon,Javascript,Node.js,Express,Favicon,我想在我的网站上添加一个favicon(用带有Node.JS和Express的JavaScript编写)。internet上的资源指向使用favicon服务中间件。Express生成器还包括这个中间件 目前,我正在使用以下代码行提供静态文件 app.use(express.static('./public')); 因此,我将favicon.ico放在/public文件夹中,favicon可以正常工作(无需使用favicon服务中间件) 所以我的问题是:为什么要使用favicon中间件?为什么不
app.use(express.static('./public'));
因此,我将favicon.ico
放在/public
文件夹中,favicon可以正常工作(无需使用favicon服务中间件)
所以我的问题是:为什么要使用favicon中间件?为什么不把它和其他静态资源(.css/.png/…)放在一个公共文件夹中呢
编辑:我得到了一些反对票,如果这是一个太多的“RTM”问题,很抱歉,但是作为一个初学者(在JavaScript/Node.js中),很容易在外部模块中迷失方向。对于Node.js来说,很难找到不“安装此模块,学习使用此模块,完成”的资源。作为初学者,我经常想知道,即使您最终使用了该模块,如果没有其他外部模块,人们会如何解决问题。答案如下:
- 用户代理经常不加区别地请求favicon.ico,因此您可能希望通过使用此选项从日志中排除这些请求 中间件先于记录器中间件
- 此模块将图标缓存在内存中,通过跳过磁盘访问来提高性能
- 此模块根据图标的内容而不是文件系统属性提供ETag
- 此模块将提供最兼容的内容类型
如果没有静态资源呢?favicon本身不是静态资源吗?如果功能在express中已经很短/很容易使用,为什么会有人使用中间件?
favicon本身不是静态资源吗?
-如果没有静态资源呢resources@JaromandaX我不明白你想说什么。我的观点是,当您在项目中没有静态资源,并且您正在添加favicon.ico时,favicon.ico将是您项目中的(第一个)静态资源。那么为什么不把它作为一个静态资源呢?对不起,我想也许使用favicon中间件
意味着你不需要app.use(express.static('./public')代码>-因为(如果它是我知道的中间件)
app.use(favicon(path.join(u dirname,'public','favicon.ico'))。。。请参阅,无需使用express.static
因此,简而言之,主要优势在于日志记录(更准确地说,不是日志记录)和缓存目的?此模块提高了应用程序性能(有一点),中间件按照声明的顺序运行,因此当您使用此模块并在static
中间件之前声明它时,它将首先被调用并以现金形式返回favicon。