Iis 始终确保在ember.js中哈希之前有一个斜杠

Iis 始终确保在ember.js中哈希之前有一个斜杠,iis,ember.js,ember-data,Iis,Ember.js,Ember Data,这可能与平台无关,但我将包括正在运行的服务器 我遇到了一个问题,在IIS的一个目录中托管了一个ember.js站点 假设我想在http://localhost/myapp 我有一个RESTAdapter,主机设置为“api”,因此请求将转到localhost/myapp/api。如果我不这样做,那么RESTAdapter将从localhost/api请求 当我导航到localhost/myapp并遵循模型链接时,我遇到了一个问题。它最终看起来像localhost/myapp#/model,它在引

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

我遇到了一个问题,在IIS的一个目录中托管了一个ember.js站点

假设我想在
http://localhost/myapp

我有一个RESTAdapter,主机设置为“api”,因此请求将转到
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中结束,则会将“/”放在url中?或者这是必须在服务器上配置的吗?

由于您实际上只能在服务器端进行配置,因此我发现实现这一点的最直接方法是让服务器在标记中呈现路径,并将其分配给我的其他脚本引用的全局Javascript变量。

这是一个常见问题,尤其是当你不能相对或绝对地导出一条路径时。在这种情况下,您将被迫创建某种特殊关系。要么在一个位置显式定义应用程序路径作为根,要么定义假定存在应用程序路径并派生该路径的逻辑。