Svelte - 路由,当我尝试输入任何 url 时,我只收到"No webpage was found"错误



使用"苗条的路由";因为我需要从许多不同的url加载一个页面,不同的url作为参数。例如,如果客户端加载到我的sight/123中,则sight需要加载app.svelte组件,同时将123作为参数传递。问题是无论我在";我的视力/";我总是得到一个";没有找到网页";页应用程序级别:

<script script lang="ts">
import MenuGenerator from './components/MenuSections/MenuGenerator.svelte';
import { Router, Route } from 'svelte-routing';
</script>
<Router>
<Route path="/:accomodation" component={MenuGenerator} />
</Router>

菜单生成器级别:

<script script lang="ts">
export let accomodation: string;
console.log('hello ', accomodation);
</script>

我已经在上测试过了https://codesandbox.io/s/svelte-routing-forked-ztddj,只需在url中的/后面添加任何内容,然后按enter键,控制台中就会出现相同的文本。

编辑:我们有二维码和NFC标签,它们的网址是设置的,不能更改。URL是我的视线/{qr_code}。我需要将每个可能的url重定向到home并将{qr_code}作为值传递的路由。

有了最后的编辑/注释,您的用例就更有意义了。

您可以在浏览器中使用window.location.pathname来识别URL中的二维码。

<script>
import { Router, Route } from "svelte-routing";
import Home from "./routes/Home.svelte";
import { onMount } from "svelte";
onMount(()=>{
let qr_code = window.location.pathname.substring(1);  // dump leading '/'
console.log("qr_code: ", qr_code);
})
</script>
<Router>
<div class="box">
<Route path="/:id" component={Home} />
</div>
</Router>

(编辑(这个答案特别解决了">我需要将每个可能的url重定向到home并将{qr_code}作为值传递的路由

现在看来,这只是部分要求。(/编辑(

已解决!!!

我需要在我的snowpack配置中取消注释一行代码。

代码行是:

//{ match: 'routes', src: '.*', dest: '/index.html' },

Tnx寻求帮助!

相关内容