티스토리 뷰
반응형
    
    
    
  Vue 앱 개발 시 public 폴더에 이미지 등의 정적 파일을 저장할 수 있습니다. public 폴더에 저장된 파일들은 webpack에 의해 처리되지 않기 때문에, Vue 앱 개발 시 public 폴더의 파일에 접근하려면 특별한 접근방법이 필요합니다.
public 폴더 내부 파일 접근
public/index.html 파일에서 접근
public/index.html 파일에서는 <%= BASE_URL %>를 통해 pbulic 폴더의 파일에 접근할 수 있습니다.
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
Vue 파일에서 접근
Vue 파일에서는 process.env.BASE_URL을 통해서 public 폴더에 접근할 수 있습니다.
- vue 파일 내부에서 public 폴더경로 정의
data () { return { publicPath: process.env.BASE_URL } } - <Template>에서 사용
<img :src="`${publicPath}image.png`"> 
<style>에서 접근
<style>에서 public 폴더에 접근하려면 v-bind()를 사용해주세요.
- public 폴더경로 정의
data () { return { fileImageUrl: 'url(' + process.env.BASE_URL + 'file.gif)' } } - <style>에서 v-bind() 사용
.fileIcon { background-image: v-bind(fileImageUrl); } 
public 폴더 내 css파일을 이용하는 방법
public 폴더에 .css 파일을 생성하여 public 폴더 이미지에 접근하는 방법도 있습니다.
- css파일 추가 
 - index.html에서 css파일 참조 추가
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="utf-8"> <link href="<%= BASE_URL %>app.css" rel="stylesheet"> </head> <body> ... - css파일에서 public 폴더 이미지 사용
.icon-file { background-image: url('img/file.gif'); } - Vue App 내에서 CSS Selector 사용
<template> <span class="icon-file"></span> </template> 
개발 권장사항
Vue에서는 public 폴더에 파일들을 저장하기 보다는 Vue 프로젝트의 src폴더에 저장하는 방법을 권장하고 있습니다. 그럼 언제 public 폴더를 사용하고 언제 src폴더를 사용해야할까요?
scr 폴더에 정적파일 저장 시 장점
- Vue 앱이 빌드 되면서 정적 파일들은 압축되고(Minified), 적절한 형태로 변한되어 묶이기 때문에(Bundling) 네트워크 트래픽 사용이 최소화 되고 로드속도를 높일 수 있습니다.
 - 잘못된 파일 경로를 입력하거나 파일누락이 발생하는 경우 컴파일 단계에서 오류가 발생합니다. 따라서 개발자의 실수를 최소화 할 수 있습니다.
 - 파일명에는 Contnet hash가 포함되기 때문에 브라우저 캐시에 의해 과거 파일들이 출력되는 문제를 막아줍니다. 파일이나 이미지가 수정되더라도 항상 최신 리소스가 출력되도록 보장해줍니다.
 
public 폴더에 저장해야하는 경우
- 정적파일이 업데이트 되거나 파일경로 변경이 없다고 보장되는 경우
 - 압축이나 난독화 되어서는 안되고, 원본 파일 그대로 제공되어야 하는 경우
 - 파일경로나 파일명이 중요한 의미를 가지기 때문에, 경로나 파일명이 그대로 제공되어야 하는 경우
 - 대상 파일의 수가 많거나 파일크기가 커서 Webpack에 의해 처리되는 것이 부적절한 경우
 - Vue 앱 외에 다양한 곳에서 공유되는 파일인 경우
 
References
- v-bind() in css : https://vuejs.org/api/sfc-css-features.html#v-bind-in-css
 - HTML and Static Assets : https://cli.vuejs.org/guide/html-and-static-assets.html
 - the public Folder : https://cli.vuejs.org/guide/html-and-static-assets.html#the-public-folder
 
'Web > Vue' 카테고리의 다른 글
| [Vue3] 변경사항 (0) | 2024.01.26 | 
|---|---|
| [Vue] .map 파일 생성방지 (0) | 2023.11.24 | 
					댓글
						
					
					
					
				
			
									최근에 올라온 글
									
							
								
								
									최근에 달린 댓글
									
							
								
								
									TAG
									
							
								
								- flutter
 - ios
 - Xamarin.Forms eBook
 - Xamarin.Forms 요약
 - linux
 - Xamarin.iOS
 - windows
 - ASP.NET Core
 - VisualStudio
 - Vue
 - Xamarin
 - npm
 - .NET Standard
 - Xamarin.Forms
 - TypeScript
 - Android
 - MS SQL
 - React
 - material-ui
 - WPF
 
- Total
 
- Today
 
- Yesterday