网页跳转至新页面时,新页面URL是否需包含原页面端点?
关于新增房间页面的URL设计选择
我有一个rooms.html页面,其URL为
http://localhost:8000/hotel/rooms/,该页面中有指向add_room.html页面的链接,点击后会跳转到URL为http://localhost:8000/hotel/add_room/的add_room.html页面。我想确定该页面的URL应设为http://localhost:8000/hotel/add_room/还是http://localhost:8000/hotel/rooms/add_room/,即从某网页跳转至新页面时,新页面的URL是否需要包含原页面的端点?
两种URL都可以采用,核心判断标准是URL要直观体现功能归属,同时保持系统整体URL风格统一,具体分场景来看:
推荐使用/hotel/rooms/add_room/的情况
- 业务逻辑更清晰:添加房间是「房间管理」模块下的核心操作,嵌套在
rooms路径下,不管是用户还是开发人员,一眼就能明白这个页面是服务于房间列表的新增功能,层级关系一目了然。 - 符合常见的资源设计思路:
/hotel/rooms/代表房间资源的集合,新增房间是针对这个集合的创建操作,嵌套URL能明确体现这种从属关系,和后续的编辑(/hotel/rooms/edit_room/<id>/)、删除房间等URL风格统一,维护起来更省心。
可以使用/hotel/add_room/的情况
- 操作独立性强:如果添加房间的功能相对独立,比如系统里还有
/hotel/add_hotel/、/hotel/add_facility/这类同级的酒店相关操作,扁平化的URL会让整体结构更简洁,避免嵌套过深导致URL冗长。 - 入口不唯一:当新增房间的页面除了从房间列表跳转,还可能从酒店首页、其他管理入口进入时,扁平化URL更通用,不需要依赖原页面的层级。
总结
优先推荐选择/hotel/rooms/add_room/,它更贴合业务逻辑,是后台管理系统中常见的URL设计方式;如果你的系统偏向极简扁平化设计,或者新增房间操作的独立性很强,再考虑使用/hotel/add_room/。
内容的提问来源于stack exchange,提问作者Anshul Gupta
相关产品推荐
相关产品推荐

