我已经在Vue.js上创建了一个项目,但问题是有些代码和直接页面链接在localhost上可以工作,但在服务器上,却存在一些问题。例如,在某些页面上注销按钮不起作用。我将注销按钮放在了标题上,这在所有网站页面上都是一样的。我不明白为什么它只在服务器上的1-2个页面上不工作,而在本地工作正常。另外,当我转到website.com/service/a时,它在服务器上显示一个空白页面,但它在桌面上工作。在服务器上,如果我转到服务页面,该页面上的链接工作正常,但当我尝试直接打开它们时,它们不起作用。我已经运行了npm run build,但我仍然有问题。控制台显示块错误,但是即使在再次上传完整的项目之后,问题仍然存在。
1条答案
按热度按时间3pvhb19x1#
您似乎已经使用历史API实现了routing。
历史API是一种告诉浏览器“我正在使用JavaScript更改页面,以便它与您从此URL加载全新页面相同”的方法。浏览器然后更新其历史记录(因此后退按钮起作用)和地址栏中的URL,而无需对URL进行新请求。
您的问题是您没有在生产环境中设置服务器来处理该URL,因此当您访问该URL时(而不是使用历史API来假装访问它)。
(In如果你的开发环境中有任何未知的URL,开发服务器将发送一个引导HTML文档,该文档将加载你的应用程序,然后用客户端JS填充空白。
你应该实现server side rendering (as per the Vue manual)。
或者,您可以使用散列路由。