我們正在開發(fā)一個使用webpack構(gòu)建的Vue.js應(yīng)用程序。要求是我們的應(yīng)用程序不僅必須可以通過基本路徑訪問,/而且還可以通過自定義路徑訪問,以便可以在其他服務(wù)旁邊訪問該應(yīng)用程序。使用webpack,\__webpack_public_path__我可以針對指定的基本路徑動態(tài)設(shè)置基本路徑,就像當(dāng)前路徑已進(jìn)入/foo/其中一樣,基本路徑應(yīng)從開始.../foo/。在應(yīng)用程序中導(dǎo)航時,只要我在基本路徑中打開應(yīng)用程序,一切都會看起來不錯。問題是,導(dǎo)航到任何子路徑并重新加載頁面后,找不到文件。服務(wù)器將首先提供index.html和,我需要使用相對路徑,因為必須動態(tài)確定基本路徑。但是,如果打開了除基本路徑以外的任何其他路徑,則index.html中的相對路徑將不會指向正確的bundle.js,并且\__webpack_public_path__不會設(shè)置...。目前,我們的webpack配置中有兩個入口點。第一個是JS文件,其中\(zhòng)__webpack_public_path__將根據(jù)當(dāng)前訪問的URL相對地設(shè)置全局變量。因此,可以說基本路徑應(yīng)始于,/foo/訪問的URL是https://www.host.com/some/path/foo/sub/sub1。因此,相對的基本路徑將是,/some/path/foo/并且資產(chǎn)將在處找到/some/path/foo/assets。webpack配置中使用的所有其他路徑(例如文件加載器或任何其他插件中的路徑)都是相對的。// webpack.config.js...module.exports = (env, argv) => ({ ... entry: ['@babel/polyfill', './src/main/js/constants/webpack-public-path.js', './src/main/js/index.js'], output: { filename: 'assets/js/bundle.js', path: path.resolve(__dirname, relativeOutputPath), publicPath: '/' }, module: { ... { test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, loader: 'file-loader', options: { name: 'assets/fonts/[name].[ext]' } } ... }, ...});// webpack-public-path.js__webpack_public_path__ = (() => { const BASE_PATH = '/foo/'; let path = window.location.pathname; return path.includes(BASE_PATH) ? path.substring(0, path.indexOf(BASE_PATH) + BASE_PATH.length) : '/';})();有沒有人遇到過類似的問題?是否有可能index.html稍后定義或中的相對路徑,或者可以在構(gòu)建時由webpack定義?
__webpack_public_path__在重新加載頁面后不起作用
qq_笑_17
2021-04-06 21:18:48