使用"svelte-routing“,因为我需要从许多不同的urls加载一个页面,不同的urls作为参数。例如,如果客户端加载到my/ 123中,则需要加载app.svelte组件,同时将123作为参数传递。问题是,无论我在“我的视线/”之后输入什么网址,我都会得到一个“没有找到网页”的页面。App.svelte:
<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>MenuGenerator.svelte:
<script script lang="ts">
export let accomodation: string;
console.log('hello ', accomodation);
</script>我已经在https://codesandbox.io/s/svelte-routing-forked-ztddj上测试过这一点,只要在url之后添加任何内容,然后按enter键,控制台中就会显示相同的文本。
编辑:我们有QR代码和NFC标签,它们的urls是设置的,不能更改。这些urls是我的视线/{qr_code}。我需要将所有可能的url重定向到home并作为值传入{qr_code}的路由。
发布于 2021-12-23 18:31:50
有了最后的编辑/注释,用例就更有意义了。
您可以在浏览器中使用window.location.pathname来识别URL中的QR代码。
<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>(编辑)这个答案具体解决了“I需要路由”的需要,该路由可以将所有可能的url重定向到家乡,并作为值传入{qr_code}。。
现在看来,这只是部分的要求。(/edit)
发布于 2021-12-23 19:19:25
解决了!
我需要取消注释在我的雪包配置中的一行代码。
代码行是:
//{ match: 'routes', src: '.*', dest: '/index.html' },请帮我!
https://stackoverflow.com/questions/70456492
复制相似问题