express.js 网站图标未显示
Posted
技术标签:
【中文标题】express.js 网站图标未显示【英文标题】:express.js favicons not showing up 【发布时间】:2014-08-12 23:20:43 【问题描述】:我目前正在运行一个简单的 express.js 示例,只是想让网站图标正常工作。在本地一切正常,但是当我将它上传到我的生产服务器时,它只显示默认的图标。我试过清除缓存,但生产服务器图标似乎不想出现。我在 Windows 2008 aws 服务器上的 iisnode 上运行所有内容。
有人知道问题出在哪里吗?
var express = require('express');
var app = express();
var port = process.env.PORT || 3000;
var bodyParser = require('body-parser');
//for favicon
var favicon = require('serve-favicon');
app.configure(function()
app.use(express.favicon(__dirname + '/views/icons/favicon.ico'));
app.use(express.static(__dirname, 'views'));
);
app.listen(port);
console.log("full path is: " + (__dirname + '/views/icons/favicon.ico'));
console.log('The magic happens on port ' + port);
【问题讨论】:
这里有一个类似的帖子:***.com/questions/11658035/… 看起来你需要('serve-favicon') 但你正在使用 express.favicon() 代替。请注意,如果您使用的是 express 4,则 express.favicon() 将不可用 另外app.configure()
在 Express 4 中不再存在。
【参考方案1】:
安装网站图标中间件,然后执行:
var favicon = require('serve-favicon');
app.use(favicon(__dirname + '/public/images/favicon.ico'));
或者更好,使用路径模块:
app.use(favicon(path.join(__dirname,'public','images','favicon.ico'));
(请注意,此解决方案也适用于 express 3 应用程序)
在 Express 4 中移除:app.configure()
app.configure()
不再可用。更多信息请参考this。
【讨论】:
请注意,后者与 path.join 一起使用缺少右侧的最后一个)
括号。【参考方案2】:
有时需要更长的时间才能显示在浏览器中。尝试清理缓存或尝试其他浏览器并多次刷新。
【讨论】:
【参考方案3】:从 npm 安装依赖项 serve-favicon
和 path
,并相应地更新 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')));
刷新浏览器以反映网站图标。
【讨论】:
以上是关于express.js 网站图标未显示的主要内容,如果未能解决你的问题,请参考以下文章