diff --git a/packages/docz-core/src/bundlers/webpack/config.ts b/packages/docz-core/src/bundlers/webpack/config.ts index 1bc27736a..401431804 100644 --- a/packages/docz-core/src/bundlers/webpack/config.ts +++ b/packages/docz-core/src/bundlers/webpack/config.ts @@ -49,6 +49,7 @@ export const createConfig = (args: Args, env: Env) => async ( const base = paths.servedPath(args.base) const dist = paths.getDist(args.dest) const srcPath = path.resolve(paths.root, args.src) + const publicPath = isProd ? base : '/' /** * general @@ -83,8 +84,8 @@ export const createConfig = (args: Args, env: Env) => async ( config.output .pathinfo(true) - .path(dist) - .publicPath(isProd ? base : '/') + .path(path.resolve(paths.root, dist)) + .publicPath(publicPath) .when(isProd, outputProd, outputDev) .crossOriginLoading('anonymous') @@ -176,7 +177,8 @@ export const createConfig = (args: Args, env: Env) => async ( config.plugin('assets-plugin').use(manifestPlugin, [ { - filename: 'assets.json', + publicPath, + fileName: 'assets.json', }, ]) @@ -235,6 +237,7 @@ export const createConfig = (args: Args, env: Env) => async ( config.plugin('injections').use(require('webpack/lib/DefinePlugin'), [ { ...getClientEnvironment(base).stringified, + BASE_URL: args.hashRouter ? JSON.stringify('/') : JSON.stringify(base), NODE_ENV: JSON.stringify(env), }, ]) diff --git a/packages/docz/src/theme.tsx b/packages/docz/src/theme.tsx index d8ab98c62..5d6814c6b 100644 --- a/packages/docz/src/theme.tsx +++ b/packages/docz/src/theme.tsx @@ -9,6 +9,8 @@ import { ErrorBoundary } from './components/ErrorBoundary' import { DataServer } from './components/DataServer' import { state, State, ThemeConfig, ImportMap } from './state' +declare var BASE_URL: string + const DefaultWrapper: SFC = ({ children }) => {children} export interface ThemeProps { @@ -46,7 +48,7 @@ export function theme( - +