Favicon不会显示,似乎是webpack

时间:2016-02-17 02:46:59

标签: javascript html frontend webpack favicon

我有一个React / Redux应用程序,我正在使用webpack来转换我的JSX和ES6,并将我的样式表和图像加载到我的JS中。我的开发服务器托管在端口3000上。

这是我的webpack.config.js:

var path = require('path');
var webpack = require('webpack');
var HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
  devtool: 'cheap-module-eval-source-map',
  entry: [
    'webpack-hot-middleware/client',
    './src/js'
  ],
  output: {
    path: path.join(__dirname, 'dist'),
    filename: 'bundle.js',
    publicPath: '/static/'
  },
  plugins: [
    new webpack.optimize.OccurenceOrderPlugin(),
    new webpack.HotModuleReplacementPlugin(),
    new webpack.NoErrorsPlugin(),
    new HtmlWebpackPlugin({
      favicon: 'src/images/favicon.ico'
    })
  ],
  module: {
    loaders: [{
      test: /\.js$/,
      loaders: [ 'babel' ],
      exclude: /node_modules/,
      include: __dirname
    }, {
      test: /\.less?$/,
      loaders: [ 'style', 'css', 'less' ],
      include: __dirname
    },
    {
      test: /\.(otf|eot|svg|ttf|woff|woff2)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
      loaders: [ 'url' ],
      include: __dirname
    },
    {
      test: /\.(png|ico|gif)?$/,
      loaders: [ 'file' ],
      include: __dirname
    }]
  }
};

当我点击localhost:3000时,除了我的favicon之外,我所期待的一切都在那里。如果我去localhost:3000 / static / favicon.ico,我的favicon就在那里。可以使用一些专业知识调试此问题。

1 个答案:

答案 0 :(得分:2)

浏览器会在localhost:3000/favicon.ico中查找您的favicon,这就是它所需要的位置。尝试重写网址,以便为favicon.ico路由提供/favicon.ico。例如,如果您正在使用historyApiFallback,请执行:

historyApiFallback: {
    rewrites: [
        // shows favicon
        { from: /favicon.ico/, to: '[path/to/favicon]' }
    ]
}