fix: basePath for history mode

This commit is contained in:
qingwei.li 2017-05-30 10:11:48 +08:00
parent 3f38810774
commit fc1cd3f11d
No known key found for this signature in database
GPG Key ID: B6DDC2F7AE80B2F4
6 changed files with 25 additions and 18 deletions

View File

@ -20,7 +20,8 @@ const config = merge({
ga: '',
mergeNavbar: false,
formatUpdated: '',
externalLinkTarget: '_blank'
externalLinkTarget: '_blank',
routerModel: 'hash'
}, window.$docsify)
const script = document.currentScript ||

View File

@ -50,7 +50,6 @@ export function fetchMixin (proto) {
const root = getParentPath(this.route.path)
const path = this.router.getFile(root + coverpage)
console.log(this.route.path, root, path)
if (this.route.path !== '/' || !coverpage) {
this._renderCover()
return

View File

@ -17,7 +17,11 @@ export class AbstractHistory extends History {
path = path.slice(0, queryIndex)
}
return { path, query: parseQuery(query) }
return {
path,
file: this.getFile(path),
query: parseQuery(query)
}
}
toURL (path, params, currentRoute) {

View File

@ -23,6 +23,8 @@ export class History {
}
getFile (path) {
path = path || this.getCurrentPath()
const { config } = this
const base = this.getBasePath()

View File

@ -69,7 +69,11 @@ export class HashHistory extends History {
path = path.slice(hashIndex + 1)
}
return { path, query: parseQuery(query) }
return {
path,
file: this.getFile(path),
query: parseQuery(query)
}
}
toURL (path, params, currentRoute) {

View File

@ -1,7 +1,7 @@
import { History } from './base'
import { merge, noop } from '../../util/core'
import { on } from '../../util/dom'
import { parseQuery, stringifyQuery, cleanPath } from '../util'
import { parseQuery, stringifyQuery, getPath, cleanPath } from '../util'
export class HTML5History extends History {
constructor (config) {
@ -10,7 +10,7 @@ export class HTML5History extends History {
}
getCurrentPath () {
const base = this.config.basePath
const base = this.getBasePath()
let path = window.location.pathname
if (base && path.indexOf(base) === 0) {
@ -37,15 +37,6 @@ export class HTML5History extends History {
on('popstate', cb)
}
normalize () {
let path = this.getCurrentPath()
path = path.replace('#', '?id=')
window.history.pushState({ key: path }, '', path)
return path
}
/**
* Parse the url
* @param {string} [path=location.href]
@ -60,12 +51,18 @@ export class HTML5History extends History {
path = path.slice(0, queryIndex)
}
const baseIndex = path.indexOf(location.origin)
const base = getPath(location.origin, this.getBasePath())
const baseIndex = path.indexOf(base)
if (baseIndex > -1) {
path = path.slice(baseIndex + location.origin.length)
path = path.slice(baseIndex + base.length - 1)
}
return { path, query: parseQuery(query) }
return {
path,
file: this.getFile(path),
query: parseQuery(query)
}
}
toURL (path, params, currentRoute) {