Таким образом, после многих проблем, я смог ответить на свой вопрос. Исправление на самом деле довольно простое, и некоторые могут сказать, элегантно.
Причина, по которой сайт vuepress портился, заключается в том, что PaloAlto, поставщик удаленных приложений, когда сервер приложения за firewalll изменяет URL-адрес на что-то вроде https://privateapps.mycompany.com/https/mywebsite.mycompany.com
, проблема с добавлением /https/mywebsite.mycompany.com
путает vuejs маршрутизатор думает, что это путь, который нужно разрешить, а не основа приложения.
Итак, чтобы исправить это, я использовал Улучшение уровня приложения в vuepress, и получилось что-то вроде этого:
export default ({
Vue, // the version of Vue being used in the VuePress app
options, // the options for the root Vue instance
router, // the router instance for the app
siteData // site metadata
}) => {
router.beforeResolve((to, from, next) => {
// Any path I went redirected to the base I would add to the Array below
const editable = ['/https/mywebsite.mycompany.com']
let flag = editable.filter(i => to.fullPath.startsWith(i))
if(flag.length > 0){
const newPath = to.fullPath.replace(flag[0],'/');
//Forcing the router to point to the base of the app
next(newPath);
}else {
next();
}
})
}
Решение состояло в том, чтобы использовать навигационное средство защиты router.beforeResolve
, которое будет вызываться непосредственно перед подтверждением навигации, в конце концов, внутрикомпонентные средства защиты и компоненты асинхронного маршрута разрешены.
Это не обязательно связано, но я исправил свою конфигурацию nginx, чтобы быть немного более устойчивым, следуя этому посту , который предлагал настроить его следующим образом:
server {
listen 80 default_server;
listen [::]:80 default_server;
root /your/root/path;
index index.html;
server_name you.server.com;
location / {
try_files $uri $uri/ @rewrites;
}
location @rewrites {
rewrite ^(.+)$ /index.html last;
}
location ~* \.(?:ico|css|js|gif|jpe?g|png)$ {
# Some basic cache-control for static files to be sent to the browser
expires max;
add_header Pragma public;
add_header Cache-Control "public, must-revalidate, proxy-revalidate";
}
}
Я надеюсь, что этот пост будет полезен другим, потому что это была очень раздражающая проблема для устранения.