如何在Express中设置自定义图标?

我最近开始在Node.js中工作,在app.js文件中有这样一行:

app.use(express.favicon()); 

现在,我如何设置我自己的习惯favicon.ico?

8 Solutions collect form web for “如何在Express中设置自定义图标?”

在Express 4中

安装favicon中间件 ,然后执行:

 var favicon = require('serve-favicon'); app.use(favicon(__dirname + '/publichttp://img.dovov.comfavicon.ico')); 

或者更好,使用path模块:

 app.use(favicon(path.join(__dirname,'public','images','favicon.ico'))); 

(请注意,这个解决scheme也可以在express 3应用程序中运行)

在Express 3中

根据API, .favicon接受一个位置参数:

 app.use(express.favicon("publichttp://img.dovov.comfavicon.ico")); 

大多数情况下,你可能想要这个(如同build议的vsync):

 app.use(express.favicon(__dirname + '/publichttp://img.dovov.comfavicon.ico')); 

或者更好的是,使用path模块(如Druskabuild议的):

 app.use(express.favicon(path.join(__dirname, 'public','images','favicon.ico'))); 

笑脸图标,以防止错误:

  //const fs = require('fs'); //const favicon = fs.readFileSync(__dirname+'/public/favicon.ico'); // read file const favicon = new Buffer('AAABAAEAEBAQAAAAAAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAgAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAA/4QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEREQAAAAAAEAAAEAAAAAEAAAABAAAAEAAAAAAQAAAQAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAA//8AAP//AAD8HwAA++8AAPf3AADv+wAA7/sAAP//AAD//wAA+98AAP//AAD//wAA//8AAP//AAD//wAA', 'base64'); app.get("/favicon.ico", function(req, res) { res.statusCode = 200; res.setHeader('Content-Length', favicon.length); res.setHeader('Content-Type', 'image/x-icon'); res.setHeader("Cache-Control", "public, max-age=2592000"); // expiers after a month res.setHeader("Expires", new Date(Date.now() + 2592000000).toUTCString()); res.end(favicon); }); 

在上面的代码中更改图标

也许在这里做一个图标: http : //www.favicon.cc/或在这里: http : //favicon-generator.org

将其转换为base64也许在这里: http : //base64converter.com/

然后replace图标基础值64

一般信息如何创build个性化的最喜欢的图标

图标是使用Photoshop或Inkscape,也许是Inkscape,然后用Photoshop进行振动和颜色校正(在图像 – >调整菜单中)。

快速图标转到http://www.clker.com/和select一些vector剪贴画,并下载为SVG。 然后将其带到inkscape( https://inkscape.org/ )并更改颜色或删除部分,也许从另一个vector剪贴画图像添加一些东西,然后导出select要导出的部分,然后单击文件>导出,select大小像16×16 favicon或32×32。 进一步编辑128×128或256×256。 ico包内可以有几个图标大小。 它可以有16×16像素favicon一个高品质的图标链接为网站。

那么也许可以在photoshop中增强图像。 像vibrance,斜angular效果,圆形面具,任何东西。

然后将该图像上传到生成图标的网站之一。 也有用于编辑像https://sourceforge.net/projects/variicons/图标的窗口程序。

将favicon添加到网站。 只需将favicon.ico作为文件放在域的根文件夹中。 例如在包含静态文件的公用文件夹中的node.js中。 它不必像上面的代码那样只是一个简单的文件。

不需要额外的中间件。 只要使用:

 app.use('/favicon.ico', express.static('images/favicon.ico')); 
 app.use(express.favicon(__dirname + '/publichttp://img.dovov.comfavicon.ico')); 

我没有__dirname +本地工作,但无法让我的部署服务器上工作。

如果您使用Express> 4.0,则可以使用服务图标

不需要定制中间件? 在快递中:

  //you probably have something like this already app.use("/public", express.static('public')); 

然后把你的图标公开,并在您的html头添加以下行:

 <link rel="icon" href="/public/favicon.ico"> 

从npm安装模块serve-faviconpath ,相应地更新index.js。

 //import packages var favicon = require('serve-favicon'), path = require("path"); //use favicon icon path to access in application. app.use(favicon(path.join(__dirname+'/favicon.ico'))); 

下面列出的代码工作:

 var favicon = require('serve-favicon'); app.use(favicon(__dirname + '/publichttp://img.dovov.comfavicon.ico')); 

只要确保刷新浏览器或清除caching。

  • 使JSON Web令牌无效
  • 如何在Node中导入全局模块? 我得到“错误:无法find模块<模块>”?
  • 在node.js中存储模块variables的范围是什么?
  • package.json中的tilde(〜)和caret(^)有什么区别?
  • 在Node.js中接收电子邮件
  • Eslint:如何在Node.js中禁用“意外的控制台语句”?
  • 在Express 4和express-generator的/ bin / www中使用socket.io
  • Node.js请求对象文档?
  • 如何设置useMongoClient(Mongoose 4.11.0)?
  • Express.js响应超时
  • 用于UNIX系统的样式较less的Markdown查看器