3

我的网站是建立在一个的WebAPI后端...发生在部署 的问题,因为我的Uri的格式不正确,由于我们的IIS部署/网站结构MVC 4:迪朗达尔绑定缓存

WRONG

http://itil.mysite.com/api/Building 

RIGHT

http://itil.mysite.com/TestSite/api/building 

所以我修改HTTP助手包括基本URI 像这样

define(function() { 
     var baseUri = window.AppPath; 
     return { 
      baseUri: baseUri, 
      defaultJSONPCallbackParam: 'callback', 
      get: function (url, query) { 
       return $.ajax(baseUri + url, { data: query }); 
      }, 
    ... 
    }); 

而且我Index.cshtml 增加了以下获得设置根/基本URI路径:

var AppPath = '@string.Format("{0}://{1}{2}", Request.Url.Scheme, Request.Url.Authority, Url.Content("~"))'; 
console.log('AppPath: '+AppPath); 

的基本URI路径是正确的,当我登录它从Index.cshtml:EG到控制台。

AppPath: http://itil.mysite.com/TestSite/ 

但是,当我做实际的API调用(从我的部署实例),它仍然使用旧的乌里..

http.get('api/building').done(viewInit); 

还是错的

http://itil.mysite.com/api/building 

我的下一个认为文件必须以某种方式缓存,所以我尝试了以下内容:

  • 重启动IIS无数次,
  • 删除和重新部署的文件
  • 禁用缓存在Chrome中,IIS(用户模式&内核 模式)
  • 残疾人.js文件缓存,
  • 重新启动我的电脑
  • 修改ScriptBundle试图强制它 (缺少更好的单词)不同步,然后将我的 代码添加回

当我使用我的Visual Studio开发服务器时,代码正常工作,但我在本地IIS & Alpha测试网站上得到了 相同的问题......没有运气。

到底如何如何清除缓存上部署的站点:/这是前往那里的东西似乎有点可笑的地步。要么我输了,要么“大个子”恨我。

回答

0

唉..我已经被这个抓出第二次。我以为我的问题是MVC相关的,它是与Durandal相关的部署:P

注意大家阅读本文。

一旦你,如果你可以修改任何现有的JavaScript文件或main.js的部署迪朗达尔项目& 。记得运行optimizer.exe

...\App\durandal\amd\optimizer.exe