gpt4 book ai didi

ember.js - 客户端 Javascript 应用程序 - 没有哈希标记的 url 路由

转载 作者:行者123 更新时间:2023-12-03 11:06:07 25 4
gpt4 key购买 nike

我正在使用最新版本的 Ember.js 开发一个新的仅限客户端的应用程序。有一个 PHP 页面可以构建脚本、css、模板文件等,并将其全部交付到 index.php 中。我正在使用 htaccess 指令,以便将所有请求都重写到/index.php。就我而言,PHP 只是为了方便地打包 Javascript。

目前,浏览器中的路由看起来像这样并且工作得很好。

/#/about 
/#/favorites
/#/etc
/#/posts/5/edit

但是,我希望它们看起来像这样 - 这不能正常工作。
/about
/favorites
/etc
/posts/5/edit

第二个选项仍然提供完全相同的客户端代码 - 但它总是命中索引路由处理程序。我以前见过客户端应用程序实现这一点 - 我错过了什么?我需要在 PHP 端有匹配的路由处理程序吗?

编辑:我正在寻找如何解决这个问题的具体答案。网络上充斥着“哦——你就这么做”的信息,让其他人摸不着头脑。

最佳答案

在 Ember.js(版本 1.0.0rc3)中,这可以通过使用 Ember.js location API 来完成。 :

App.Router.reopen({
location: 'history'
});

然后设置 Web 服务器将流量重定向到 Ember 应用程序。

这里举一个具体的例子是一个基本的 Apache .htaccess将流量重定向到位于 index.html 中的 Ember 应用程序的文件:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.html#$1 [L]

Alex White指出 Apache 2.2.16 及更高版本支持将流量重定向到单个目标的更简单配置:
FallbackResource /index.html

FallbackResourcemod_dir 的一部分模块和需要 AllowOverride Indexes要设置。

确保彻底测试应用程序路由。一个常见错误是 Uncaught SyntaxError: Unexpected token < ,这是由使用 CSS 和 JS 文件的相对链接引起的。在它们前面加上 /标记使它们绝对。

这个功能是not supported in Internet Explorer <10 .

关于ember.js - 客户端 Javascript 应用程序 - 没有哈希标记的 url 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14845048/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com