Быстрое исправление
Что делать, если вы должны заменить %PUBLIC_URL%
на фактический путь.Я думаю, что у Вавилона проблемы с транспортом %
.Попробуйте заменить %PUBLIC_URL%/favicon.ico
на /public/favicon.ico
, и проблема будет решена.
Лучшее исправление
Добавьте новое правило в ваш webpack.config.js.
//...
{
test: /\.(png|svg|jpg|jpeg|gif|ico)$/,
exclude: /node_modules/,
use: ['file-loader?name=[name].[ext]'] // ?name=[name].[ext] is only necessary to preserve the original file name
}
//...
Затем скопируйте ресурс .ico в каталог dist , добавив импорт в App.js .import '../public/favicon.ico';
В вашем index.html;<link rel="shortcut icon" href="favicon.ico">
чтобы использовать вашу иконку.Больше нет необходимости указывать путь, поскольку он будет скопирован в каталог dist
ИЛИ:
В дополнение к правилу, добавленному в webpack.config.js упоминалось выше, добавление плагинов в конфигурацию веб-пакета может быть лучшим способом в зависимости от ваших настроек.
Для меня это выглядит как добавление пакета npm html-webpack-plugin к проекту.Затем требуется это в конфиге веб-пакета;const HtmlWebpackPlugin = require('html-webpack-plugin');
.Затем добавление plugins
к module.exports
.
//...
plugins: [
new HtmlWebpackPlugin({
template: './public/index.html',
filename: './index.html',
favicon: './public/favicon.ico'
})
]
//...
. Переход по этому маршруту и выполнение работы в конфигурации веб-пакета означает, что строка, добавленная в App.js для импорта значка.ico больше не понадобится.