【发布时间】:2013-07-16 09:13:48
【问题描述】:
我的网站建立在 WebAPI 后端... 部署时出现问题,因为我们的 IIS 部署/站点结构导致我的 Uri 格式不正确
错误
http://itil.mysite.com/api/Building
正确
http://itil.mysite.com/TestSite/api/building
所以我修改了我的 http 帮助程序以包含一个 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 以尝试强制它 to(因为没有更好的词)不同步,然后添加了我的 回码
当我使用我的 Visual Studio 开发服务器时,该代码有效,但我得到了 在我本地的 IIS 和 Alpha 测试站点上出现同样的问题......没有运气。
我到底如何清除已部署站点上的缓存:/ 这已经到了事情似乎有点荒谬的地步。要么我失去它,要么“大家伙”讨厌我。
【问题讨论】:
标签: asp.net-mvc-4 asp.net-web-api web-deployment durandal bundling-and-minification