Emberjs 从 URL 中删除主题标签
Posted
技术标签:
【中文标题】Emberjs 从 URL 中删除主题标签【英文标题】:Emberjs remove the hashtag from the URL 【发布时间】:2014-05-13 19:22:44 【问题描述】:这是一个简单的问题,但我想知道是否可以从 emberjs 的 URL 中删除 # 符号?我知道这在许多框架中是不可能的,但我很想知道 ember。
如果是的话,怎么可能?
【问题讨论】:
Client-side javascript app - url routing with no hash tag的可能重复 【参考方案1】:如果我理解正确,删除哈希会破坏使用 ember.js 的全部意义,因为其他 url 会指向其他 html 页面,而当您使用 ember.js 时,您只会下载一个页面。
【讨论】:
【参考方案2】:是的,您可以在Ember Guide中看到相关部分
请记住,这样做意味着您需要配置您的服务器,以便为您可以接受的所有可能路由提供 ember 应用程序
您也可以这样做,以便使用此类路由提供的页面将在其 noscript 标记中具有普通无灰页面的额外好处,作为 SEO 优化的一种形式(试图解释您为什么会这样做这个)
更多内容请见API Docs
揭示了使用 location:auto
而不是 location:history
的不错选择,提供了一个更向后兼容的解决方案
App.Router.reopen(
location: 'auto'
);
【讨论】:
我最近找到了您的答案并参考了 API 文档。文档没有指定将这段代码放在哪里?我将它放入我的 router.js 文件中,它破坏了我的应用程序。有没有具体的地方放这段代码? 没有 router.js 是添加它的正确位置。请记住为什么要添加location:'auto'
tho,因为它将在现代浏览器中调用 location:'histroy'
而您的后端没有提供正确的路由,这将导致向您提供错误的 404 页面(如果您通过地址栏访问该页面例如,localhost:3000/posts
期望提供一个帖子页面,这与提供 index.html 的localhost:3000/#posts
相反,然后 ember 调用帖子把手模板。只是为了检查使用它不会破坏任何东西,将其转为 location:'hash'
这是默认设置。以上是关于Emberjs 从 URL 中删除主题标签的主要内容,如果未能解决你的问题,请参考以下文章