Javascript Vue.js从子目录服务的路由

Javascript Vue.js从子目录服务的路由,javascript,vue.js,vue-router,Javascript,Vue.js,Vue Router,我想从临时服务器上的子目录为我的Vue.js应用程序提供服务。例如: 现在,如果我这样做并设置build-config-assetsPublicPath以从该文件夹提供服务,则所有资产都可以正常提供,但我的应用程序没有正确路由。“主页”页面被路由到“全面覆盖”,任何进一步的路由只显示正常的白色页面404 这是我的路由器: export default new Router({ mode: 'history', routes: [ { path: '/',

我想从临时服务器上的子目录为我的Vue.js应用程序提供服务。例如:

现在,如果我这样做并设置build-config-assetsPublicPath以从该文件夹提供服务,则所有资产都可以正常提供,但我的应用程序没有正确路由。“主页”页面被路由到“全面覆盖”,任何进一步的路由只显示正常的白色页面404

这是我的路由器:

export default new Router({
    mode: 'history',
    routes: [
    {
        path: '/',
        component: ContentView,
        children: [
            {
                path: '/',
                name: 'DataTable',
                component: DataTable,
                meta: { requiresAuth: true }
            },

            // ===================================
            //  Login
            // ===================================
            {
                path: '/login',
                name: 'AppLogin',
                component: AppLogin,
                meta: { checkAlreadyLoggedIn: true }
            },
            {
                path: '/logout',
                name: 'AppLogout',
                component: AppLogout,
                meta: { requiresAuth: true }
            }
        ]
    },
    {
        path: '*',
        component: ContentView,
        children: [
            {
                path: '/',
                name: 'NotFound',
                component: NotFound
            }
        ]
    }
]})
下面是必要的config/index.js更改:
assetsPublicPath:'/subdir/app/'


在当地开发中,这些路线运行良好。但是在登台服务器上,所有静态资产、构建的JS和CSS等都可以正常工作。然而,回家的路线显示了包罗万象。我假设这是因为我的路由设置不正确,或者是因为我需要做一些事情来从生产中的子目录提供服务。

AssetPublicPath配置仅用于网页包资产。对于vue路由器,您需要在构造函数中设置
base
选项


请参阅文档:

我已经能够使用
vue-route
base
属性解决这个问题。 在本例中,其如下所示:

export default new Router({
    mode: 'history',
    base: '/subdir/app/',
    routes: [
    {
        path: '/',
        component: ContentView,
        children: [
我现在的问题是如何动态地创建这个子目录。 想象一个服务器,两个不同的URL指向这个服务器

www.dominio / app1
www.dominio / app2

非常感谢。我检查了环境并根据以下内容设置了基础:
base:process.env.environment==='development'?'/':'/subdir/app/“
那么,为什么不举一个他应该做什么的工作示例呢?只有一些神秘的文档另外,有必要配置“publicPath”网页包paramI尚未看到任何人提供此问题的工作示例。就在这周,我遇到了这个问题。这个基本选项只能让你达到部分目的。。到目前为止,我还没有看到这个在线的工作示例。我认为使用vue.config.js文件是一个更好的选择,如中所述。您是否已经得到任何关于这个问题的提示?我还需要动态多个子文件夹,但只使用同一个vue.js dist构建。谢谢,我通过以下参数接收基本url:base:(req.getResponseHeader('root-base')==null?'/':req.getResponseHeader('root-base'))+'p'Sorry-对于更复杂的路由问题来说是一个新问题,如果涵盖了这一点,那么很抱歉。使用base可以很好地工作,但是如果直接点击路由,或者甚至刷新非根(或基)路由路径上的浏览器,都会导致404。我猜这是因为除非先点击根目录,否则应用程序最初不会加载。是否有任何解决方法,或者是否需要在web服务器上应用重写/重定向规则?