Как удалить жестко запрограммированный значок во Vue?

У меня установлен Vue CLI 3 с плагином PWA, а также i18n.

Я удалил все файлы значков Vue в / public / (включая PNG в / public / img / icons), удалил файл logo.png в / src / assets, удалил тег link (rel = icon) в / public / index .html, изменил manifest.json, чтобы удалить любую ссылку на существующие файлы значков Vue, очистил кеш браузера, но при загрузке страницы я все еще получаю эти жестко запрограммированные теги ссылок в моем DOM:

<link rel="icon" type="image/png" sizes="32x32" href="/img/icons/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/img/icons/favicon-16x16.png">
<link rel="apple-touch-icon" href="/img/icons/apple-touch-icon-152x152.png">
<link rel="mask-icon" href="/img/icons/safari-pinned-tab.svg" color="#4DBA87">
<meta name="msapplication-TileImage" content="/img/icons/msapplication-icon-144x144.png">

Ни один из этих файлов не существует, и ни один из них не упоминается в моем проекте. Самое странное в этом то, что значок Vue по умолчанию по-прежнему отображается в любом браузере, который я использую, даже после удаления ВСЕХ файлов, так что это определенно не кеширование на стороне клиента.

Как их удалить?


person Thomas    schedule 24.03.2019    source источник
comment
вы используете шаблон vue pwa по умолчанию?   -  person dagalti    schedule 24.03.2019
comment
Я думаю, это из manifest файла. ты можешь это проверить?   -  person Varit J Patel    schedule 24.03.2019
comment
Проверьте свой vue.config.js. могут быть записи из pwa iconPaths   -  person dagalti    schedule 24.03.2019
comment
@ varit05 Мой manifest.json: { "name": "client", "short_name": "client" ], "start_url": "./index.html", "display": "standalone", "background_color": "#000000", "theme_color": "#4DBA87" }   -  person Thomas    schedule 24.03.2019
comment
@dagalti мой vue.config.js: module.exports = { devServer: { host: '0.0.0.0', disableHostCheck: true }, pluginOptions: { i18n: { locale: 'en', fallbackLocale: 'en', localeDir: 'locales', enableInSFC: true } } }   -  person Thomas    schedule 24.03.2019
comment
Разве vue cli 3 по умолчанию не создает файл index.html в папке public, содержащей хотя бы 1 запись значка? Если ни один значок не определен вообще, он использует последний из кешированных.   -  person Sumurai8    schedule 24.03.2019
comment
@ Sumurai8 Как я уже говорил в своем первом посте, я удалил все записи значков из index.html и очистил кеш   -  person Thomas    schedule 24.03.2019
comment
Отображение другого значка, чем вы ожидаете, все еще может кэшироваться (например, мой браузер имеет тенденцию отображать значки из последнего проекта, в котором были значки, даже если у меня явно отключено кеширование; при просмотре в другом браузере вместо этого значок не отображается). Включение нескольких строк, которые на самом деле определяют эти значки, вероятно, не так. Если у вас нет этих строк ни в вашем index.html, ни в вашем manifest.json, следующим вероятным виновником будет что-то, что есть в вашем vue.config.js.   -  person Sumurai8    schedule 24.03.2019
comment
@ Sumurai8 Я только что понял, что это было! Конфигурация по умолчанию для vue-pwa - виноват! github.com/vuejs/vue-cli / tree / dev / packages /% 40vue /   -  person Thomas    schedule 24.03.2019
comment
В общедоступном / index.html есть место, где вы можете изменить значок по умолчанию на выбранный вами значок.   -  person AKASH PANDEY    schedule 25.03.2019


Ответы (1)


Я только что понял, что мне нужно отредактировать свой vue.config.js и добавить что-то вроде:

    pwa: {
        name: 'Test',
        iconPaths: {
          favicon32: '(any icon file here)',
          favicon16: '(any icon file here)',
          appleTouchIcon: '(any icon file here)',
          maskIcon: '(any icon file here)',
          msTileImage: '(any icon file here)'
        }
    }

для отмены настроек по умолчанию (см. https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-pwa)

person Thomas    schedule 24.03.2019
comment
Спасибо, искал! - person Saleh; 27.05.2020
comment
кстати, начиная с vue-cli 4.3.0, если значение элемента в iconPaths равно null, он не будет включен в сборку. - person Saleh; 27.05.2020