Vaadin 路由器(非 java)地址栏条目不工作
Vaadin Router (non-java) Address Bar Entry not working
正在尝试使用 Vaadin 路由器和 Web 组件创建单页应用程序。一切都适用于正常导航。但是,当在地址栏中输入有效地址时,我会在屏幕上看到以下输出并且控制台中没有错误。
无法获取 /users
我已经查看了这个问题,但似乎没有帮助:
我认为我应该能够输入地址并导航到资源的想法是错误的吗?
教程中的典型设置:具有以下版本:
package.json
"name": "rollup-dependencies",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"@rollup/plugin-node-resolve": "^13.0.0",
"rollup": "^2.52.8"
},
"dependencies": {
"@vaadin/router": "^1.7.4",
"lit-html": "^1.4.1",
"redux": "^4.1.0"
}
}
app.js - 路线
import "../views/HomeView.js";
import "../views/NotFoundView.js";
import "../views/UserListView.js";
// select the DOM node where the router inserts route Web Components
const outlet = document.getElementById('outlet');
const router = new Router(outlet);
router.setRoutes([
{path: '/', component: 'x-home-view'},
{path: '/users', component: 'x-users-view'},
{path: '/users/(.*)', component: 'x-user-not-found-view'},
{path: '(.*)', component: 'x-not-found-view'},
]);
index.html
<!DOCTYPE html>
<html>
<head>
<title>[WebStandards template]</title>
<link rel="stylesheet" href="./content/css/style.css">
</head>
<body>
<base href="/">
<a href="/">Home</a>
<a href="/users">All Users</a>
<a href="/users/kim">Kim</a>
<a href="/about">About</a>
<div id="outlet"></div>
<script src="./content/scripts/app.js" type="module"></script>
</body>
</html>
为简洁起见,此处未显示 WebComponents。但是,它们存在于代码中,单击链接可以成功导航到它们。
您需要在后端服务器中处理这些路径,以便它们 return 与路径为“/”时 return 编辑的内容相同 index.html
。
认为 vaadin-router 在客户端工作,通过使用 javascript API 它用 web-component 替换内容并更新 url,但它没有将请求 /users
发送到服务器。
否则,当您在 URL 中键入 /users
时,您的浏览器会离开当前页面并将请求发送到后端,后端没有任何页面指向 return 的路径
正在尝试使用 Vaadin 路由器和 Web 组件创建单页应用程序。一切都适用于正常导航。但是,当在地址栏中输入有效地址时,我会在屏幕上看到以下输出并且控制台中没有错误。
无法获取 /users
我已经查看了这个问题,但似乎没有帮助:
我认为我应该能够输入地址并导航到资源的想法是错误的吗?
教程中的典型设置:具有以下版本:
package.json
"name": "rollup-dependencies",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"@rollup/plugin-node-resolve": "^13.0.0",
"rollup": "^2.52.8"
},
"dependencies": {
"@vaadin/router": "^1.7.4",
"lit-html": "^1.4.1",
"redux": "^4.1.0"
}
}
app.js - 路线
import "../views/HomeView.js";
import "../views/NotFoundView.js";
import "../views/UserListView.js";
// select the DOM node where the router inserts route Web Components
const outlet = document.getElementById('outlet');
const router = new Router(outlet);
router.setRoutes([
{path: '/', component: 'x-home-view'},
{path: '/users', component: 'x-users-view'},
{path: '/users/(.*)', component: 'x-user-not-found-view'},
{path: '(.*)', component: 'x-not-found-view'},
]);
index.html
<!DOCTYPE html>
<html>
<head>
<title>[WebStandards template]</title>
<link rel="stylesheet" href="./content/css/style.css">
</head>
<body>
<base href="/">
<a href="/">Home</a>
<a href="/users">All Users</a>
<a href="/users/kim">Kim</a>
<a href="/about">About</a>
<div id="outlet"></div>
<script src="./content/scripts/app.js" type="module"></script>
</body>
</html>
为简洁起见,此处未显示 WebComponents。但是,它们存在于代码中,单击链接可以成功导航到它们。
您需要在后端服务器中处理这些路径,以便它们 return 与路径为“/”时 return 编辑的内容相同 index.html
。
认为 vaadin-router 在客户端工作,通过使用 javascript API 它用 web-component 替换内容并更新 url,但它没有将请求 /users
发送到服务器。
否则,当您在 URL 中键入 /users
时,您的浏览器会离开当前页面并将请求发送到后端,后端没有任何页面指向 return 的路径