【问题标题】:404 error when accessing website with parameters (vuejs)使用参数访问网站时出现404错误(vuejs)
【发布时间】:2021-10-12 00:00:21
【问题描述】:

我正在一个使用 VueJS 的网站上工作,并且刚刚弄清楚如何做 url 参数,这在我的本地机器上运行良好。我可以导航到一个页面,然后在我的浏览器中复制包含参数的完整链接,然后页面以相同的方式加载。

示例:我输入localhost:8080 加载索引站点,导航到localhost:8080/param1/param2 转到另一个站点,一切正常。我什至可以直接输入localhost:8080/param1/param2(无需先进入索引页面),它也可以工作。

但是,在构建并上传到我的网络托管服务提供商后,我无法直接输入带有参数的 url,它仅在从索引页面导航时有效。

我会出现以下错误:

404 Error

我几乎没有路由和网络托管方面的经验,即使经过广泛研究也无法在线找到解决方案。任何帮助将不胜感激。

基于我收到的 cmets 的其他信息:

网络主机: 我登录了 Plesk,我可以在其中管理我的设置。我有“Apache & nginx”设置,如下所示:

Apache Settings

nginx Settings

【问题讨论】:

  • 如果不是索引,可能有 NGINX 将所有路由重定向到 404
  • 您能否添加更多关于您使用的托管服务的信息,以及“从索引页面导航时有效”的含义?
  • @Radeanu 我编辑了我的帖子以包含网络主机设置,这是否回答了您的问题?抱歉,我对虚拟主机非常缺乏经验
  • @FilipRazek 对我来说,它看起来像是由 Apache 和 nginx 提供支持。我的意思是:我的索引页面上有一个链接,导航到 index/component/url/param 等。单击它,它工作正常。但只需将整个 URL 发布到浏览器搜索栏,它就会返回 404。抱歉,如果这仍然令人困惑,我可以上传图片或视频。
  • @Radeanu 就是这样,谢谢。

标签: javascript vue.js routes http-status-code-404 web-hosting


【解决方案1】:

这是因为 SPA 没有像传统页面那样针对不同 URL 提供不同的 HTML 页面。因此,您必须要么将所有请求重定向到服务器设置中的index.html 页面,要么将历史记录属性设置为此history: createWebHashHistory()

让我知道这是否有效。

P.S:抱歉,我不知道如何在 Apache 或 Nginx 中配置此设置

【讨论】:

  • 这正是问题所在。经过更多的研究,您的帮助和来自 cmets 中其他人的帮助我发现了这个:router.vuejs.org/guide/essentials/… 其中 1:1 描述了我正在经历的事情。我将您的答案标记为解决方案。
猜你喜欢
  • 2022-01-02
  • 1970-01-01
  • 1970-01-01
  • 2019-03-13
  • 1970-01-01
  • 2019-05-24
  • 2013-03-06
  • 2020-05-10
  • 1970-01-01
相关资源
最近更新 更多