history.pushstate如何允许嵌套URL路径的单一入口点
How can history.pushstate allow a single point of entry for nested url paths
很抱歉这个问题措辞不好。
带有 apache 的 PHP 将 index.php/index.html 用于目录 URL,例如:localhost
= localhost/index.php或 localhost/place = localhost/place/index.php如果我从以下方面开始:本地主机/地点我使用 javascript history.pushstate 来更新带有长地址的 url,例如:本地主机/地点/子位置然后,如果我在浏览器中输入该 URL,我将转到 localhost/place/subplace/index.php当我真的想要 localhost/place/index.php 允许该 url 成为唯一的入口点时。
我正在使用简单的javascript(window.location.pathname或anchorNode.pathname(来检索用于ajax的url路径。这由类似于主干网的简单路由器使用.js来更新页面。javascript路由工作,浏览器中的后退/前进工作。如果我能让它与地址栏中输入的 url 的单一入口点一起使用就好了。
总结一下:
我想要我的 php 应用程序的单一入口点来获取所有子目录。
在单入口点,我想运行javascript来获取路径并使用它来使用ajax路由页面。
我正在使用 history.pushState 来更新 url,但是当目录比主目录长时,这会弄乱应用程序的单点入口。基本上我得到一个404页面。
现在我不太关心让它向后兼容没有history.pushState的浏览器。我只是想让这一件事起作用。
作为附录,我更喜欢在javascript中使用常规路径而不是查询字符串。无论页面是使用地址栏还是使用history.pushState加载,这都是我更喜欢的。我不知道这是否可以用 apache 重写来处理还是什么。
类似问题:
如何使用JS历史API推送状态处理刷新页面
好的。我把事情搞得太难了。
要使路由在页面加载时工作,我需要做两件事。
在.htaccess文件中,我可以使用apache重写使所有url路由到index.php?path=first/second/third
当页面加载时,只需将查询字符串中的新路径连接到处理路由的 javascript 字符串。
javascript仍在使用中,并且没有重复的功能。一切都很好。
这也回答了这个问题:如何使用JS历史API推送状态处理刷新页面
- 逃脱了单一角色的介绍人,而不是实际角色
- 使url匹配'/''/索引'和'/index.html'到单一状态
- UI网格单一筛选器无法处理复杂数据
- 具有多个入口点的Marionette应用程序
- 将JavaScript变量发送到另一个页面,以便与表单一起提交
- 调用Webpack中的多个入口点
- 修改jQuery脚本,让我选择页面入口的选择列表的默认值
- 加载网站时显示弹出菜单一次
- 如何使用具有多个入口点的 Webpack 和 Gulp 来转译应用程序和测试目录
- 具有不同回调处理程序的单一实例 Websockets 对象
- 为什么jQuery html在与表单一起使用时像replaceWith一样工作
- WebPack:多个入口点,没有额外的块
- Azure 网站单一登录以用户身份从 Azure Active Directory 访问 Azure 移动服务
- 是否有任何工具可以将 JavaScript 返工为每个函数表单一个变量
- 通过jQuery只选择一个对象,并将其与表单一起提交
- Jquery 时事通讯注册弹出窗口与网站入口上的 cookie
- 选择“加载 XMLHTTP 不会随表单一起发送”
- history.pushstate如何允许嵌套URL路径的单一入口点
- 在多入口点模块中仅获取一个<模块名称>.nocache.js文件
- 天花板入口和地板入口