我的网站建立在 WebAPI 后端...部署时出现问题,因为我们的 IIS 部署/站点结构导致我的 Uri 格式不正确
错误的
http://itil.mysite.com/api/Building
对
http://itil.mysite.com/TestSite/api/building
所以我修改了我的 http helper 以包含一个 baseUri 像这样
define(function () {
var baseUri = window.AppPath;
return {
baseUri: baseUri,
defaultJSONPCallbackParam: 'callback',
get: function (url, query) {
return $.ajax(baseUri + url, { data: query });
},
...
});
在我的 Index.cshtml 上添加了以下内容来设置 root/baseUri 路径:
var AppPath = '@string.Format("{0}://{1}{2}", Request.Url.Scheme, Request.Url.Authority, Url.Content("~"))';
console.log('AppPath: '+AppPath);
当我从 Index.cshtml 将 baseUri 路径记录到控制台时,它是正确的:EG。
AppPath: http://itil.mysite.com/TestSite/
但是当我进行实际的 api 调用(来自我部署的实例)时,它仍然使用旧的 Uri..
http.get('api/building').done(viewInit);
还是错了
http://itil.mysite.com/api/building
我的下一个想法是必须以某种方式缓存文件,所以我尝试了以下方法:
- 多次重启IIS,
- 删除和重新部署的文件
- 禁用 chrome 中的缓存,
- 在 IIS(用户模式和内核模式)中禁用 .js 缓存,
- 重新启动我的电脑
- 修改了 ScriptBundle 以尝试强制它(因为缺少更好的词)不同步,然后将我的代码添加回来
当我使用我的 Visual Studio 开发服务器时,代码可以工作,但我在本地 IIS 和 Alpha 测试站点上遇到了同样的问题......没有运气。
我到底如何清除已部署站点上的缓存:/ 这已经到了事情似乎有点荒谬的地步。要么我失去它,要么“大家伙”讨厌我。