Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to set favicon.ico properly on vue.js webpack project?

I have created a vue webpack project using vue-cli.

vue init webpack myproject 

And then ran the project under dev mode:

npm run dev 

I got this error:

Failed to load resource: the server responded with a status of 404 (Not Found) http://localhost:8080/favicon.ico

So inside webpack, how to import the favicon.ico correctly?

like image 307
Alfred Huang Avatar asked Oct 22 '16 09:10

Alfred Huang


People also ask

What size should a favicon be?

Favicon images are small in size, only 16 pixels in height by 16 pixels in width, so there is not much space for complex designs. Still, a good favicon that is clean, simple and easily identifiable can provide a good visual indicator for visitors navigating to your site through their tabs or bookmarks.

What does favicon ICO in a webserver's log indicate?

A favicon. ico is the little icon that browsers display next to a page's title on a browser tab, or in the address bar next to its URL. In practical when you bookmark any page then it shows a logo of website which is nothing but favicon. ico . It is default lookup of browsers.


2 Answers

Check out the Project Structure of webpack template: https://vuejs-templates.github.io/webpack/structure.html

Note that there is a static folder, along with node_modules, src, etc.

If you put some image into the static folder, like favicon.png, it will be made available at http://localhost:8080/static/favicon.png

Here is the documentation for static assets: https://vuejs-templates.github.io/webpack/static.html

For your favicon issue, you can put a favicon.ico or favicon.png into the static folder and refer in the <head> of your index.html as follows:

<head>     <meta charset="utf-8">     <link rel="shortcut icon" type="image/png" href="/static/favicon.png"/>     <title>My Vue.js app</title>     ... </head> 

If you do not define a favicon.ico in your index.html, then the browser will request for a favicon from the website root (default behaviour). If you specify a favicon as above, you will not see that 404 anymore. The favicon will also start showing up in your browser tabs.

As a side note, here is the reason why I prefer PNG instead of ICO file:

favicon.png vs favicon.ico - why should I use PNG instead of ICO?

like image 112
Mani Avatar answered Nov 16 '22 00:11

Mani


For some reason, the above solutions did not work for me before converting the default favicon.ico file to favicon.png and renaming it to favicon-xyz.png e.g. (I have put this file in /public folder) and edited the index.html file as follows:

<head>     <meta charset="utf-8">     <meta http-equiv="X-UA-Compatible" content="IE=edge">     <link rel="icon" href="<%= BASE_URL %>favicon-xyz.png">     .     .     . </head> 

Might be useful for someone.

like image 24
tjurkan Avatar answered Nov 16 '22 00:11

tjurkan