Vue.js SPA static Nuxt应用程序在通过共享主机部署时无法获取静态文件,但在本地服务器上运行良好

Vue.js SPA static Nuxt应用程序在通过共享主机部署时无法获取静态文件,但在本地服务器上运行良好,vue.js,deployment,request,http-status-code-404,nuxt.js,Vue.js,Deployment,Request,Http Status Code 404,Nuxt.js,我正在尝试在共享托管服务Bluehost上托管的子域上部署SPA nuxt项目 我按照运行了nuxt构建和nuxt导出,并尝试在本地服务器上提供生成的静态文件dist,效果很好 但一旦我尝试实际部署,页面无法成功加载,我在Chrome devtools的网络选项卡中有多个404,说它无法获取在_nuxt目录中找到的所有生成的静态js文件: runtime.c59f93b.js commons.app.db9bcff.js app.fe0b14c.js 有人知道这是什么原因吗?或者如果需

我正在尝试在共享托管服务Bluehost上托管的子域上部署SPA nuxt项目

我按照运行了nuxt构建和nuxt导出,并尝试在本地服务器上提供生成的静态文件dist,效果很好

但一旦我尝试实际部署,页面无法成功加载,我在Chrome devtools的网络选项卡中有多个404,说它无法获取在_nuxt目录中找到的所有生成的静态js文件:

runtime.c59f93b.js  
commons.app.db9bcff.js
app.fe0b14c.js  
有人知道这是什么原因吗?或者如果需要向nuxt.config.js添加任何内容?尝试搜索文档,但没有结果。ff是我的numxt.config.js:


提前感谢。

问题是我试图部署到子目录,而不是站点的主目录,因此Nuxt试图从错误的目录获取文件,即

/mainsite/public/commons.app.db9bcff.js

应该是什么时候

/mainsite/subdir1/dirname/public/commons.app.db9bcff.js

解决方案是在nuxt.config.js中手动配置路由器属性:


感谢user@Rie指出了这个属性,它最终成为了解决方案。

这可能是相关的:似乎是Nuxt上的一个bug。在github上再也找不到这个问题了,但这是一个很长的问题,有很多不同的解决方案。基本路径设置是否正确?当它在控制台中抛出错误时,它是否确实显示了丢失的js文件的正确路径?我不知道URL指向何处以及您的目标目录实际上是什么,所以我需要更多信息:d如果您在子目录中设置了它,您需要设置此属性,尽管尝试此解决方案@Rie非常感谢,通过添加完整路径,我最终在编辑该属性后使其工作!是的,问题是我在一个子目录中设置/部署它,而不是作为主站点,因此nuxt尝试获取文件的基本路径不正确:它从根目录获取,而不是从生成的dist文件夹所在的目录获取。
export default {
  mode: 'spa',
  /*
  ** Headers of the page
  */
  head: {
    title: process.env.npm_package_name || '',
    meta: [
      { charset: 'utf-8' },
      { name: 'viewport', content: 'width=device-width, initial-scale=1' },
      { hid: 'description', name: 'description', content: process.env.npm_package_description || '' }
    ],
    link: [
      { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }
    ]
  },
  /*
  ** Customize the progress-bar color
  */
  loading: { color: '#fff' },
  /*
  ** Global CSS
  */
  css: [
  ],
  /*
  ** Plugins to load before mounting the App
  */
  plugins: [
  ],
  /*
  ** Nuxt.js dev-modules
  */
  buildModules: [
  ],
  /*
  ** Nuxt.js modules
  */
  modules: [
  ],
  /*
  ** Build configuration
  */
  build: {
    /*
    ** You can extend webpack config here
    */
    extend (config, ctx) {
    }
  },
  target: 'static'
}
router: {
    base: '/subdir1/dirname/'
  }