我目前正在运行一个简单的express.js示例,只是试图让favicon工作。一切都在本地工作正常,但当我上传到我的生产服务器时,它只显示默认的图标。我已经尝试清除缓存,但生产服务器图标似乎不想显示。我在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);
答案 0 :(得分:3)
安装favicon中间件,然后执行:
var favicon = require('serve-favicon');
app.use(favicon(__dirname + '/public/images/favicon.ico'));
或者更好,使用路径模块:
app.use(favicon(path.join(__dirname,'public','images','favicon.ico'));
(请注意,此解决方案也适用于快递3应用程序)
在Express 4中删除:app.configure()
app.configure()
已不再可用。有关详细信息,请参阅this。
答案 1 :(得分:0)
有时需要更长的时间才能在浏览器中显示。尝试清理缓存或尝试其他浏览器并多次刷新。
答案 2 :(得分:0)
从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')));
刷新浏览器以反映favicon。