我想要以下开发者设置:
http://mydevhost/
为常规的PHP应用程序提供服务http://mydevhost/admin/
为Webpack开发服务器(Quasar SPA)提供服务现在我已经在vhost中的这一行上在Apache上设置了代理:
ProxyPass "/admin/" "http://localhost:8080/"
代理有效,但Webpack无法按所需的http://mydevhost/app.js
而不是http://mydevhost/admin/app.js
加载资产。我试图将publicPath
中的filename
和quasar.conf.js
配置为/admin/
,但没有成功(仍在寻找/app.js
)。
如何实现?
回答我自己的问题,我找到了解决此问题的方法。
在Apache vhost中,设置webpack开发服务器的代理(在http://localhost:8080
处提供:]
ProxyPassMatch ^/admin(?!/api)(/.*)$ http://localhost:8080/admin$1
ProxyPassReverse ^/admin(?!/api)(/.*)$ http://localhost:8080/admin$1
ProxyPassMatch ^/((?:.*js)|(?:statics|sock-node|fonts|img)/.*)$ http://localhost:8080/$1
ProxyPassReverse ^/((?:.*js)|(?:statics|sock-node|fonts|img)/.*)$ http://localhost:8080/$1
现在,所有以/admin
开头的路由都将由VueRouter处理,除了以/admin/api
开头的路由。
然后在VueRouter中,设置所有以/admin
开头的路由。
const routes: RouteConfig[] = [
{
path: '/admin',
component: () => import('layouts/DefaultLayout.vue'),
children: [/* put other routes here */]
}
];