始终确保 ember.js 中的散列前有斜杠

always ensuring a slash before the hash in ember.js

这可能与平台无关,但我会包括我正在运行的服务器。

我在 IIS 目录中托管 ember.js 站点时遇到问题。

假设我想在 http://localhost/myapp 托管网站。

我有一个主机设置为 "api" 的 RESTAdapter,因此请求将转到 localhost/myapp/api。如果我不这样做,那么 RESTAdapter 将从 localhost/api.

请求

当我导航到 localhost/myapp 并点击模型链接时遇到问题。它最终看起来像 localhost/myapp#/model ,它在引擎盖下中断了 api 调用——它最终再次调用 localhost/api (我假设是因为它截断了最后一个斜线之后和之前的所有内容哈希)。如果我导航到 localhost/myapp/ 并采取相同的操作,我不会遇到任何问题——url 变为 localhost/myapp/#/model,这会导致 RESTAdapter 调用转到 /myapp/api/model

这是我配置 RESTAdapter 的方式的问题,还是我在转到应用程序根目录时没有强制使用尾部斜线?我想找出如何解决这个需要尽可能少的临时配置的问题(例如,将 myapp 明确定义为命名空间不是最佳的——它可能因环境而异,并且需要自定义构建步骤)。有没有一种方法可以始终确保“/”路由到 'myapp/',或者当附加散列时,如果它还没有结束,它将把“/”放在 url 中?或者这是必须在服务器上配置的东西吗?

因为你真的只能在服务器端弄清楚,我发现最直接的方法是让服务器呈现标记中的路径,将其分配给全局 Javascript 变量,我的其他脚本已引用。