vue.js 웹팩 프로젝트에서 favicon.ico를 올바르게 설정하는 방법은 무엇입니까?


94

vue webpack사용하여 프로젝트를 만들었습니다 vue-cli.

vue init webpack myproject

그런 다음 dev모드 에서 프로젝트를 실행했습니다 .

npm run dev

이 오류가 발생했습니다.

리소스를로드하지 못했습니다. 서버가 404 (찾을 수 없음) 상태로 응답했습니다. http : // localhost : 8080 / favicon.ico

그래서 webpack 내부에서 favicon.ico올바르게 가져 오는 방법은 무엇입니까?


1
사이트의 루트에 그냥 놓아 보셨나요? :) 아니면 공용 빌드 폴더에 있습니까?
Benjamin

답변:


154

웹팩 템플릿의 프로젝트 구조를 확인하세요 : https://vuejs-templates.github.io/webpack/structure.html

정적 폴더와 함께이 있다는 것을 참고 node_modules, src

static와 같은 이미지를 폴더에 넣으면 http : // localhost : 8080 / static / favicon.pngfavicon.png 에서 사용할 수 있습니다 .

다음은 정적 자산에 대한 문서입니다. https://vuejs-templates.github.io/webpack/static.html

당신의 파비콘 문제를 들어, 당신은 넣을 수 있습니다 favicon.ico또는 favicon.pngstatic폴더와에서 참조 <head>다음과 같이 index.html을의 :

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

favicon.ico에서를 정의하지 않으면 index.html브라우저가 웹 사이트 루트에서 파비콘을 요청합니다 (기본 동작). 위와 같이 favicon을 지정하면 더 이상 404가 표시되지 않습니다. 파비콘은 브라우저 탭에도 표시되기 시작합니다.

참고로 ICO 파일 대신 PNG를 선호하는 이유는 다음과 같습니다.

favicon.png vs favicon.ico-왜 ICO 대신 PNG를 사용해야합니까?


1
내 favicon을 src / assets에 보관하려면 어떻게해야합니까? .gitkeep과 함께 정적 폴더에 두는 것이 가장 좋습니까?
Akin Hwan

4
@AkinHwan 아직 시도하지 않았지만 src / assets에 이미지를 보관하면 모듈 종속성으로 처리되고 최종 빌드 파일에 인라인 이미지 (base64 형식)로 이동합니다. 이렇게하면 빌드 크기가 불필요하게 증가합니다. 걱정할 필요가 없습니다. 어떤 식 으로든 성능에 영향을주지 않습니다. 문서에 설명 된대로 이미지를 "실제 정적 자산"으로 유지하는 것이 선호됩니다 . 귀하의 선호도는 다를 수 있습니다. 두 가지 방법을 모두 시도하고 자신에게 맞는 방법을 선택해야합니다.
Mani

7
이 답변은 약간 오래된 것 같습니다. 현재 vue 웹팩 템플릿 에는 정적 디렉토리가 아닌 공개 디렉토리가 있습니다.
JakeParis

4

Laravel 5.x를위한 작은 업데이트는, 당신의 장소 favicon.ico또는 favicon.png/public폴더와에 참조 index.html다음과 같이 :

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

도움이 되길 바랍니다!


4

어떤 이유로, 위의 솔루션은 기본 favicon.ico파일을 로 변환 favicon.png하고 이름을 바꾸기 전에 작동하지 않았습니다. favicon-xyz.png예 를 들어 (이 파일을 /public폴더에 넣었습니다 ) index.html다음과 같이 파일을 편집했습니다 .

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

누군가에게 유용 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.