我想部署一个静态nuxt.js应用程序(用nuxt generate构建)到Web服务器的子目录.默认情况下,nuxt将生成的文件放在dist目录中:

default output

如果我在dist文件夹的parent directory上启动一个Web服务器,并用以下命令打开页面:

http://localhost:34360/dist/

站点无法从域根目录加载脚本文件:

404 Default

我try 在nuxt配置中设置publicPath属性:

build: {
  publicPath: '/dist/'
}

应用程序编译为:

output with publicPath

现在,nuxt将脚本文件下移一级(/dist/dist),并再次在根级别(/dist)上搜索,因此仍然找不到文件

error with publicpath

How can I configure the site, such that scripts and assets are loaded and it is self contained, no matter on which directory on my server I put it?

这个问题已经讨论了on GitHub次,但建议的提示(使用publicPath)没有起作用,如上所示.

旁注:我不想指定publicPath absolut(即http://localhost:8080/dist),它可以工作,但会产生新问题.

推荐答案

你需要router/base

router: {
  base: '/dist/'
}

Vue.js相关问答推荐

用于循环数组的模板元素内的条件渲染

vuetify/mdi 不显示图标

Vue Js Composition Api 未定义(读取名称)

Vuejs - 更新数组中对象的数组

如何从mustache内的过滤器输出html

如何解决 Vue.js 中的相邻 JSX 元素必须包含在封闭标记中问题

Nuxt.js 中的开发工具样式编辑问题

单击链接会更改 url,但不会更改页面上的内容/数据

VueRouter 未定义

我可以使用 vue.js v-if 来判断值是否存在于数组中

使用 Vue.js 的用户可切换自定义主题

VueJS 使用 prop 作为数据属性值

Vue 组件 Vue-Instant

Vue 3:模块 '"../../node_modules/vue/dist/vue"' 提示

如何突出显示 Vuetify 菜单中的选定项目?

vue 3 使用 Vuex 和路由的服务器端渲染

如何从 vue 组件调用 App.vue 中的方法

使用 Firebase Auth for Google 将匿名用户转换为注册用户

vuex 是 state.array.push react式的吗?

vuejs 中缺少 webpack 配置