首页 > 解决方案 > 细长的路由链接删除了电子中的基本路径

问题描述

我正在开发一个 Electron.js 应用程序,使用 Svelte 作为我的前端框架。我正在使用 svelte-routing 库进行路由:

<Router>
    <Route path="">
      //Home Page
      <Link to="subpath">
    </Route>

      <Route path="subpath">
        //Subpath
      </Route>
</Router>

单击链接时,它会删除基本路径,只留下子路径:我得到:file:///subpath而不是file:///path/to/project/public/index.htmlin window.location

路由仍然有效,但是当电子执行热重载时,我得到的只是一个空白屏幕,并且出现错误: Not allowed to load local resource: file:///subpath

我怎样才能解决这个问题?

标签: javascriptrouteselectronsvelte

解决方案


哈希路由可以解决这个问题。例如,不使用 path /about,而是使用#/about. 用电子术语来说,这意味着file:///path/to/index.html#/about

不幸svelte-routing的是不支持哈希#路由。

一个明确支持它的路由器是@jamen/svelte-router(可能还有其他的)。

以下是 的示例用法@james/svelte-router

<!-- App.svelte -->
<script>
  import {Router} from '@jamen/svelte-router'
  import Home from './screens/Home.svelte'
  import About from './screens/About.svelte'

  const routes = {
    "/": Home,
    "/about": About
  }
</script>

<Router {routes}/>

推荐阅读