Vue-cli를 여러 페이지를 지원하는 기록 모드로 변환하는 방법
이 글은 주로 Vue-cli를 여러 페이지를 지원하는 히스토리 모드로 변환하는 방법을 자세히 소개합니다. 관심 있는 친구들이 참고할 수 있기를 바랍니다.
제목은 정확하지 않을 수 있지만 아마도 요구 사항일 것입니다.
Vue-cli를 사용하여 다중 항목, 다중 페이지 사이트를 구축하십시오. 즉, html-webpack을 통해 여러 .html 파일이 생성됩니다. -plugin 플러그인. 기본적으로 아래에서는 index.html 항목만 http://www.xxx.com/xxx/xxx와 같은 기록 모드를 사용할 수 있고 다른 항목은 다음과 같은 해시 모드만 사용할 수 있습니다. http://www.xxx.com/admin.html#/xxx/xxx, webpack-dev-middleware가 모든 경로를 index.html 파일로 지정하기 때문에 기록 모드가 필요합니다. 문제가 있습니다.
정말 너무 많습니다. 둘째, 방금 기사 작성을 마쳤는데 connect-history-api-fallback 플러그인이 이 작업을 수행한다는 것을 발견했습니다...
메서드가 다음과 같이 업데이트되었습니다.
빌드를 수정합니다. /dev-server.js 파일
app.use(require('connect-history-api-fallback')())
Change Be
var history = require('connect-history-api-fallback') app.use(history({ rewrites: [ { from: 'index', to: '/index.html'}, // 默认入口 { from: /\/backend/, to: '/backend.html'}, // 其他入口 { from: /^\/backend\/.*$/, to: '/backend.html'}, ] }))
자세한 규칙을 참조하세요: https://github.com/bripkens/connect-history-api-fallback
--- ----------- 다음 코드는 무시하세요. --------------
이제 모든 항목이 기록 모드를 지원하도록 몇 가지 변경해 보겠습니다.
1. , 빌드 디렉터리 파일에 setup-dev-server.js를 생성합니다. 내부 코드는 다음과 같습니다.
const path = require('path') const webpack = require('webpack') const clientConfig = require('./webpack.dev.conf') // 引入开发环境下的 webpack 配置文件 module.exports = function setupDevServer(app, opts) { const clientCompiler = webpack(clientConfig) // 加载 webpack-dev-middleware 插件 const devMiddleware = require('webpack-dev-middleware')(clientCompiler, { publicPath: clientConfig.output.publicPath, stats: { colors: true, chunks: false } }) app.use(devMiddleware) // 关键代码开始 // 因为开发环境下, 所有的文件都在内存里, 包括由 html-webpack-plugin 生成的 .html 文件, 所以我们需要用 webpack-dev-middleware 提供的 api 从内存里读取 clientCompiler.plugin('done', () => { const fs = devMiddleware.fileSystem // 访问内存 const filePath = path.join(clientConfig.output.path, 'index.html') // 读取的文件, 文件名和 html-webpack-plugin 生成的文件名要求一致 if (fs.existsSync(filePath)) { // 判断下文件是否存在 const index = fs.readFileSync(filePath, 'utf-8') // 从内存里取出 opts.indexUpdated(index) // 将取出的文件通过 indexUpdated 函数返回, 这个函数怎么来的, 后面会说明 } const adminPath = path.join(clientConfig.output.path, 'backend.html') // 同上, 这是第二个入口生成的 .html 文件, 如果还有其他入口, 这个多复制几份 if (fs.existsSync(adminPath)) { const admin = fs.readFileSync(adminPath, 'utf-8') opts.adminUpdated(admin) } }) // 加载热重载模块 app.use(require('webpack-hot-middleware')(clientCompiler)) var hotMiddleware = require('webpack-hot-middleware')(clientCompiler) // 当修改 html-webpack-plugin 模版时, 自动刷新整个页面 clientCompiler.plugin('compilation', function(compilation) { compilation.plugin('html-webpack-plugin-after-emit', function(data, cb) { hotMiddleware.publish({ action: 'reload' }) cb() }) }) }
2. build/dev-server.js 파일을 수정합니다
주로 var에서 파일을 수정합니다. app = express() to module.exports = app.listen(port, function (err) {
var app = express() var indexHTML var adminHTML // 引用前面创建的文件, 并将两个保存内容的函数传过去, 这里保存内容的变量写成对象或者数组也可以, 还可以少点代码 require('../config/setup-dev-server')(app, { indexUpdated: index => { indexHTML = index }, adminUpdated: index => { adminHTML = index }, }) // 加载反向代理 Object.keys(proxyTable).forEach(function(context) { var options = proxyTable[context] if (typeof options === 'string') { options = { target: options } } app.use(proxyMiddleware(context, options)) }) // 设置静态文件夹路由 var staticPath = path.posix.join(config.assetsPublicPath, config.assetsSubDirectory) app.use(staticPath, express.static('./static')) // 入口1路由 app.get(['/', '/category/:id'], (req, res) => { res.send(indexHTML) }) // 入口2路由 app.get(['/backend', '/backend/*'], (req, res) => { res.send(adminHTML) }) // 404 页面 app.get('*', (req, res) => { res.send('HTTP STATUS: 404') }) app.use(function(req, res, next) { var err = new Error('Not Found') err.status = 404 next(err) }) app.use(function(err, req, res) { res.status(err.status || 500) res.send(err.message) }) module.exports = app.listen(port, function(err) {
3.npm 사이의 코드 dev를 실행하고 행복하게 코드 작성을 시작하세요
관련 권장 사항:
위 내용은 Vue-cli를 여러 페이지를 지원하는 기록 모드로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Windows Shello를 사용하는 경우 지원되는 카메라를 찾을 수 없습니다. 일반적인 이유는 사용하는 카메라가 얼굴 인식을 지원하지 않거나 카메라 드라이버가 올바르게 설치되지 않았기 때문입니다. 그럼 설정 방법을 살펴보겠습니다. Windowshello에서 지원되는 카메라 튜토리얼을 찾을 수 없습니다. 이유 1: 카메라 드라이버가 올바르게 설치되지 않았습니다. 1. 일반적으로 Win10 시스템은 다음과 같이 대부분의 카메라에 대한 드라이버를 자동으로 설치할 수 있으며, 카메라를 연결한 후 알림이 표시됩니다. 이때 장치를 열어서 카메라 드라이버가 설치되어 있는지 관리자를 확인하세요. 그렇지 않은 경우 수동으로 설치해야 합니다. WIN+X를 누른 다음 장치 관리자를 선택합니다. 3. 장치 관리자 창에서 카메라 옵션을 확장하면 카메라 드라이버 모델이 표시됩니다.

PyCharm Community Edition은 충분한 플러그인을 지원합니까? 구체적인 코드 예제가 필요 소프트웨어 개발 분야에서 Python 언어가 점점 더 널리 사용됨에 따라 전문적인 Python 통합 개발 환경(IDE)인 PyCharm이 개발자들에게 선호되고 있습니다. PyCharm은 Professional 버전과 Community 버전의 두 가지 버전으로 나누어집니다. Community 버전은 무료로 제공되지만 Professional 버전에 비해 플러그인 지원이 제한됩니다. 그렇다면 문제는 PyCharm Community Edition이 충분한 플러그인을 지원하느냐는 것입니다. 이 기사에서는 특정 코드 예제를 사용하여

ASUS tufz790plus는 메모리 주파수를 지원합니다. ASUS TUFZ790-PLUS 마더보드는 듀얼 채널 DDR4 메모리를 지원하고 최대 64GB의 메모리를 지원하는 고성능 마더보드입니다. 메모리 주파수는 최대 4800MHz로 매우 강력합니다. 지원되는 특정 메모리 주파수에는 2133MHz, 2400MHz, 2666MHz, 2800MHz, 3000MHz, 3200MHz, 3600MHz, 3733MHz, 3866MHz, 4000MHz, 4133MHz, 4266MHz, 4400MHz, 4533MHz, 4600MHz, 4733MHz 및 . 일상적인 사용이든 고성능 요구이든

오픈소스 소프트웨어의 장단점: 오픈소스 프로젝트의 장단점을 이해하려면 구체적인 코드 예제가 필요합니다. 오늘날 디지털 시대에 오픈소스 소프트웨어는 점점 더 많은 관심과 존경을 받고 있습니다. 오픈소스 소프트웨어는 협력과 공유의 정신을 바탕으로 한 소프트웨어 개발 모델로서 다양한 분야에서 널리 사용되고 있습니다. 그러나 오픈 소스 소프트웨어의 많은 장점에도 불구하고 몇 가지 과제와 제한 사항도 있습니다. 이 기사에서는 오픈 소스 소프트웨어의 장단점을 자세히 살펴보고 특정 코드 예제를 통해 오픈 소스 프로젝트의 장단점을 보여줍니다. 1. 오픈소스 소프트웨어의 장점 1.1 개방성과 투명성 오픈소스 소프트웨어

Flask-Babel을 사용하여 다중 언어 지원을 구현하는 방법 소개: 인터넷의 지속적인 발전으로 인해 다중 언어 지원은 대부분의 웹 사이트와 애플리케이션에 필요한 기능이 되었습니다. Flask-Babel은 Babel 라이브러리를 기반으로 다국어 지원을 제공하는 편리하고 사용하기 쉬운 Flask 확장입니다. 이 기사에서는 Flask-Babel을 사용하여 다국어 지원을 구현하는 방법을 소개하고 코드 예제를 첨부합니다. 1. Flask-Babel을 설치하기 전에 먼저 Flask-Bab을 설치해야 합니다.

일부 사용자는 XP 시스템을 사용하고 그래픽 카드를 gtx960으로 업그레이드하고 싶지만 gtx960이 XP 시스템을 지원하는지 여부를 확신하지 못합니다. 실제로 gtx960은 XP 시스템을 지원합니다. 공식 웹사이트에서 XP 시스템에 적합한 드라이버를 다운로드하기만 하면 gtx960을 사용할 수 있습니다. 아래에서 구체적인 단계를 살펴보겠습니다. gtx960은 XP 시스템을 지원합니까? GTX960은 XP 시스템과 호환됩니다. 드라이버를 다운로드하여 설치하기만 하면 됩니다. 먼저 NVIDIA 공식 웹사이트를 열고 홈페이지로 이동해야 합니다. 그런 다음 페이지 위에서 레이블이나 버튼을 찾아야 합니다. 아마도 "Drivers"라는 레이블이 붙을 것입니다. 이 옵션을 찾으면 클릭해야 합니다.

우리 모두 알고 있듯이 win11 시스템을 설치하려면 컴퓨터가 TPM2.0을 지원하고 보안 부팅을 활성화해야 합니다. 컴퓨터에 win11 설치에 실패하는 경우 보안 부팅이 켜져 있지 않기 때문일 수 있습니다. 다음은 일부 브랜드의 컴퓨터에서 보안 부팅을 활성화하는 방법에 대한 튜토리얼입니다. 이것이 도움이 되기를 바랍니다. win11로 업그레이드할 때 보안 부팅을 지원해야 한다는 메시지가 나타나면 어떻게 해야 합니까? 1. ASUS 마더보드 1. 먼저 중국어로 전환한 다음 키보드에서 F7을 눌러 프롬프트에 따라 고급 설정을 엽니다. 3. 그런 다음 키 관리를 선택합니다. 2. Lenovo 컴퓨터 1. 2020년 이전 Lenovo 컴퓨터 모델의 경우 F2를 눌러 BIOS 설정으로 들어간 다음 위에서 보안을 선택해야 합니다. 2. 보안 탭에서 secureboot를 삭제하고 E로 변경합니다.

국제 지원을 위해 Hyperf 프레임워크를 사용하는 방법 세계화가 급속히 발전함에 따라 많은 응용 프로그램은 다양한 국가 및 지역의 사용자 요구를 충족하기 위해 다중 언어 지원 기능을 갖추어야 합니다. 경량의 고성능 프레임워크인 Hyperf 프레임워크는 국제 지원 기능을 제공하며 개발자가 다국어 응용 프로그램을 빠르게 개발하는 데 도움을 줄 수 있습니다. 이 기사에서는 Hyperf 프레임워크에서 국제화 기능을 사용하는 방법을 소개하고 해당 코드 예제를 제공합니다. 1. 다중 언어 지원을 구성하려면 먼저 Hyperf 구성 파일을 구성해야 합니다.
