gatsby - 有没有办法将具有相同基本 url 段的所有 url 路由到 Gatsby 中的同一页面?
问题描述
我想要 site.com/shop/plp/、site.com/shop/plp/whatever-url 和 site.com/shop/plp/whatever-url?id:value 都去 site.com/shop/plp ,而不更改 url 或查询字符串。
我目前正在使用 Gatsby 和 @reach/router。
有没有办法在不诉诸重定向的情况下做到这一点?
解决方案
我能够通过Client-only routes实现这一点。基本上,它是 Gatsby 内置的前端解决方案,它使用页面中的特定文件来src/pages/foo.js
匹配特定模式的所有 URL。
我在这里部署了这个特定问题的工作版本- Github repo。尝试导航到任何 URL 以/app/...
从JSON 占位符获取数据- 检查控制台输出。一些例子:
- https://advaitju.github.io/gatsby-trial/app/posts
- https://advaitju.github.io/gatsby-trial/app/comments/
- https://advaitju.github.io/gatsby-trial/app/comments/3
仅客户端路由是否正常工作取决于您的静态托管:
- 例如,只有当我首先导航到静态生成的页面(如 index )然后导航到
/
/app
- 它只适用于 Github 页面。在考虑使用 AWS S3、Google 托管等之前进行测试。
看看这些文件:
推荐阅读
- java - Spring Boot 身份验证 - 管理控制台 403 响应客户端
- python - 如何解决“不能使用 null 作为映射键!” 使用 Group_Map 在 Python 3 中出现 Spark.SQL 错误
- php - 获取前一个数组键的值
- javascript - 在多维数组中搜索重复的字符串
- python - TypeError:字符串索引必须是来自 cURL 命令的 JSON 上的整数
- node.js - Nestjs响应序列化与对象数组
- django - 如何在 RestFramework 中显示多对多字段
- jpa - 未注入 Web 服务的持久性单元
- python-3.x - 如何修复 python 中的“from caffe.proto import caffe_pb2”错误?
- crystal-reports - 在报告中添加徽标时,水晶报告在徽标中添加灰色背景色