我正在尝试以http://localhost:9294/users而非http://localhost:9294/#/users
的形式实现网址根据文档的说法,这似乎是可行的,但我无法使用“可收藏”的网址。
为了澄清,直接浏览http://localhost:9294/users会给出404“未找到:/ users”
答案 0 :(得分:0)
您可以在Spine中启用HTML5历史记录支持,如下所示:
Spine.Route.setup(history: true)
将history: true
参数传递给Spine.Route.setup()
,这将启用没有哈希的花哨网址。
这方面的文档实际上有点埋没,但它在这里(倒数第二节):http://spinejs.com/docs/routing
修改强>
为了拥有可以直接导航的网址,您必须执行此“服务器”端。例如,使用Rails,您必须构建一种方法来获取url的参数(在本例中为“/ users”),并相应地将其传递给Spine。以下是Spine文档的摘录:
但是,使用时需要注意一些事项 历史API。首先,您发送到navigate()的每个URL都需要有一个 真正的HTML表示。虽然浏览器不会请求新的 此时的URL,如果页面随后将被请求 重新加载。换句话说,您无法像您一样构成任意网址 可以使用哈希片段;传递给API的每个URL都需要存在。 实现此目的的一种方法是服务器端支持。
当浏览器首先请求URL(期待HTML响应)时 确保在服务器端端点存在且有效。那么你 可以只提供主应用程序,它将读取URL, 调用适当的路线。例如,假设您的用户 导航到http://example.com/users/1。在服务器端,您检查 URL / users / 1有效,以及ID为的用户记录 1存在。然后你可以继续提供JavaScript 应用
这种方法的警告是它不提供搜索引擎 抓取任何真实的内容。如果你想要你的应用程序 可抓取,您必须检测爬虫机器人请求并为其提供服务 一个'平行的内容世界'。这超出了这个范围 但是文档。
要使其正常工作绝对是一项很好的努力,但是可以做到。如果不知道你正在使用的堆栈,就不可能给你一个具体的答案。
答案 1 :(得分:0)