RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1373737
Accepted
vegasmoscow
vegasmoscow
Asked:2022-06-21 19:47:08 +0000 UTC2022-06-21 19:47:08 +0000 UTC 2022-06-21 19:47:08 +0000 UTC

为什么 Vue 不显示内部页面而只显示主要页面?

  • 772

我正在用 Vue 编写一个小型投资组合应用程序。用了路由器。我组装了站点,将其上传到服务器,这就是发生的事情,当我转到主页时,一切正常,单击链接打开页面。但是如果直接进入内部页面,就会显示错误——找不到页面。

例如,如果您先访问 site.ru,然后通过导航访问 site.ru/page,则所有页面都会打开。如果您立即访问 site.ru/page,则会显示错误。逻辑很清楚,SPA 仅从主页加载,然后导航链接开始工作。但是,如何向某人发送内部页面的链接或将其添加为书签?

我读到您需要在路由器中设置 mode: 'history' ,但这没有帮助。我也没有在文档中找到任何内容。

这是我的路由器文件:

import { createRouter, createWebHistory } from 'vue-router'

const routes = [
  {
    path: '/',
    name: 'Home',
    component: () => import('../views/Home.vue')
  },
  {
    path: '/trainer',
    name: 'Trainer',
    component: () => import('../views/Trainer.vue')
  },
  {
    path: '/404',
    name: '404',
    component: () => import('../views/NotFound.vue')
  },
  {
    path: '/:catchAll(.*)',
    redirect: '/404'
  }
]

const router = createRouter({
  mode: 'history', //(не помогает)
  history: createWebHistory(process.env.BASE_URL),
  routes
})

export default router

如何设置 SPA 以便可以直接访问任何内部链接,就像常规站点一样?

vue.js
  • 2 2 个回答
  • 10 Views

2 个回答

  • Voted
  1. Vladimir Isakov
    2022-06-21T23:21:03Z2022-06-21T23:21:03Z

    为了使 Vue 应用程序与后端正常工作,您需要在服务器上复制路由(/trainers、/404),以便所有页面的后端都提供给 Vue 应用程序(index.html)。

    • 0
  2. Best Answer
    venanen
    2022-06-22T01:25:33Z2022-06-22T01:25:33Z

    在这里,您需要查看目录结构——路由引用的位置以及它们如何拦截,以及服务器是如何被提升的。为了让 Vue 路由器正常工作,所有请求都必须重定向到 Vue 生成的 index.html。如果同时需要保存后端请求,则可以执行以下操作:

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !^/(api)/ [NC]
    RewriteRule . /index.html  [L]
    

    此文件会将所有请求重定向到 index.html,但包含 API 的 URL 除外。

    • 0

相关问题

  • Vue.js 如何拖放表格内容

  • 如何完成切换并单击组?

  • 如何将内容加载到属于循环元素的块中?

  • 带有计数器的 VueJs 循环

  • Vue.js 如何制作导航箭头

  • 启动 npm serve 时抛出错误

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5