使用服务器路由响应路由器浏览器历史记录
React router browser history with server routing
我正在编写一个Web应用程序,使用客户端的react
和服务器端的express
。
我正在使用react-router
(链接)路由客户端页面。
使用hashHistory
它很简单并且工作正常,但现在我想使用browserHistory
.
如react-router
教程中所述,我需要告诉我的服务器期待客户端请求,因此当我们呈现客户端页面时,它将服务器index.html
。
我找不到一种方法来处理来自客户端的页面请求和服务器处理请求。
例如,我在路径/product
中有一个页面,但我还有一个用于服务器处理/authenticate
的端点。
在react-router
教程中,它说要使用以下方法:
// server.js
// ...
// add path.join here
app.use(express.static(path.join(__dirname, 'public')))
// ...
app.get('*', function (req, res) {
// and drop 'public' in the middle of here
res.sendFile(path.join(__dirname, 'public', 'index.html'))
})
但是这种方式将导致每个请求(包括/authenticate
)将其发送回index.html
。如何合并这两者?
你必须在
*
之前定义/authenticate
(这基本上是一个包罗万象,必须排在最后)
app.use(express.static(path.join(__dirname, 'public')))
ap.get('/authenticate', function (req, res) {
res.sendStatus(200)
});
// ...
app.get('*', function (req, res) {
// and drop 'public' in the middle of here
res.sendFile(path.join(__dirname, 'public', 'index.html'))
})
相关文章:
- 将HTML表单发布到iframe会导致浏览器历史记录出现问题
- 制作一个阻止存储在浏览器历史记录中的网页
- 使用服务器路由响应路由器浏览器历史记录
- JS函数在浏览器历史记录中返回特定域的上次浏览页面
- 使jQuery scrollTop不离开浏览器历史记录
- React Router浏览器历史记录适用于本地,而不适用于生产
- jquery cookie,在清除浏览器历史记录后仍然设置
- 通过javascript从浏览器历史记录中删除URL
- 如何防止浏览器在浏览浏览器历史记录时卡在Angular路线上
- 使用Backbone.js处理浏览器历史记录
- 使用javascript获取浏览器历史记录,并通过php打印
- 我们可以使用Javascript获取浏览器历史记录吗
- 通过javascript访问浏览器历史记录,以实现自定义的后退和前进按钮
- 如何操作浏览器历史记录并捕获浏览器后退/前进按钮
- 使用HTML5浏览器历史API的SPA中的页面刷新
- 如何通过js启用/禁用浏览器历史记录
- AJAX POST 浏览器历史记录
- 从客户端读取浏览器历史记录
- 在本地使用浏览器历史记录时刷新页面后数据消失
- 以编程方式查找 Chrome 浏览器历史记录