>  기사  >  웹 프론트엔드  >  실제 Vue 프로젝트 운영 및 솔루션에서 직면하는 함정

실제 Vue 프로젝트 운영 및 솔루션에서 직면하는 함정

零下一度
零下一度원래의
2017-06-25 09:35:323816검색

Pit 1. webpack

Solution: config의 index.js에서 빌드 객체의 자산PublicPath 속성 수준은 필요합니다. '/'로 조정 './'

 1  build: { 2     env: require('./prod.env'), 3     index: path.resolve(__dirname, '../dist/index.html'), 4     assetsRoot: path.resolve(__dirname, '../dist'), 5     assetsSubDirectory: 'static', 6     assetsPublicPath: './', 7     productionSourceMap: false,12     productionGzip: false,13     productionGzipExtensions: ['js', 'css'],18     bundleAnalyzerReport: process.env.npm_config_report19   }
 1 dev: { 2     env: require('./dev.env'), 3     port: 8080, 4     autoOpenBrowser: true, 5     assetsSubDirectory: 'static', 6     assetsPublicPath: '/', 7     proxyTable: {}, 8     // CSS Sourcemaps off by default because relative paths are "buggy" 9     // with this option, according to the CSS-Loader README10     // ()11     // In our experience, they generally work as expected,12     // just be aware of this issue when enabling this option.13     cssSourceMap: false14   }

이유:

개발 환경의 정적 폴더는 루트 디렉터리를 기반으로 하므로 '를 사용하세요. /'직접 . 예를 들어 http://localhost:8080/static/img/logo.png 형식입니다.

웹팩 패키징은 자동으로 static 폴더를 패키징한다는 점을 다들 아셔야 합니다. 기본적으로 dist 폴더는 프로덕션 환경 파일의 루트 디렉터리로 생성되고, static 폴더는 dist에 생성됩니다. 따라서 생성된 형식은 http://localhost:8080/dist/static/img/logo.png여야 합니다. 루트 디렉터리를 기반으로 하지 않으므로 '/' 해당 리소스를 찾을 수 없어야 합니다.

다음 속성의 의미를 소개하세요.

assetsRoot: webpack 출력의 대상 폴더 경로

assetsSubDirectory: webpack 컴파일 출력의 보조 폴더

assetsPublicPath: webpack 컴파일 출력의 릴리스 경로, 예: www / eat in .woshichihuo.com/eat 이 경로입니다

Pit 2. webpack으로 패키징한 후 로컬에서 index.html에 접속하면 흰색 화면이 나오며 리소스는 정상적으로 로딩됩니다

해결책: 라우팅 설정 모드를 기록 모드로 설정하지 마세요. 기본값은 여전히 ​​해시입니다. 라우터 폴더 아래 index.js 파일에 있습니다.

1 const router = new Router({2   // mode: 'history',3   routes: [4     index,5     home6   ]7 })
히스토리 모드가 필요한 경우 vue-router 공식 문서를 참조하세요:

위 내용은 실제 Vue 프로젝트 운영 및 솔루션에서 직면하는 함정의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.