javascript - 细长的路由链接删除了电子中的基本路径
问题描述
我正在开发一个 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.html
in window.location
。
路由仍然有效,但是当电子执行热重载时,我得到的只是一个空白屏幕,并且出现错误:
Not allowed to load local resource: file:///subpath
我怎样才能解决这个问题?
解决方案
哈希路由可以解决这个问题。例如,不使用 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}/>
推荐阅读
- android - 每 60 秒通过套接字从 Android 向 python 服务器发送音频文件
- database-design - 我应该在我的 ERD/关系图中为数据库管理员建模吗?
- keycloak - keycloak 到 keycloak 数据同步
- apache-drill - Apache Drill 是否支持多个字符作为分隔符?
- plugins - 我可以在 DynamicPropertyInstance 实体上触发插件吗?
- nginx - 在 auth_request 之后调用自定义 nginx 模块
- java - 扫描仪看不到文件 Java
- drag-and-drop - NSTableView 拖动冻结停靠
- python - 如何比较tensorflow中tf.Variable和标量的大小?
- css - 使用角度 7 在多行中有椭圆的问题