Favicon不会显示,似乎是webpack的问题

Jim*_*ong 8 html javascript favicon frontend webpack

我有一个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
    }]
  }
};
Run Code Online (Sandbox Code Playgroud)

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

Luk*_*per 3

浏览器将在 中查找您的网站图标localhost:3000/favicon.ico,因此它就位于该位置。尝试重写 url 以服务favicon.ico/favicon.ico路由。例如,如果您使用historyApiFallback,请执行以下操作:

historyApiFallback: {
    rewrites: [
        // shows favicon
        { from: /favicon.ico/, to: '[path/to/favicon]' }
    ]
}
Run Code Online (Sandbox Code Playgroud)