MVC 4:Durandal捆绑缓存

时间:2013-07-16 09:13:48

标签: asp.net-mvc-4 asp.net-web-api web-deployment durandal bundling-and-minification

我的网站建立在WebAPI后端上... 部署时出现问题,因为我的Uri由于我们的IIS部署/站点结构而未正确格式化

WRONG

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:EG将其登录到控制台时,baseUri路径是正确的。

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

但是当我执行实际的api调用时(来自我部署的实例),它仍然使用旧的Uri ..

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

仍然错误

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

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

  • 多次重启IIS,
  • 删除并重新部署文件
  • 在Chrome中禁用缓存,
  • 在IIS中禁用.js缓存(usermode& kernel 模式),
  • 重新启动我的电脑
  • 修改ScriptBundle以尝试强制它 (因为缺少一个更好的词)不同步,然后添加我的 代码回来

当我使用我的Visual Studio开发服务器时代码工作,但我得到了 我当地的IIS&阿尔法测试网站......没有运气。

我该如何清除已部署网站上的缓存:/这已经到了事情似乎有点荒谬的地步。要么我失去它,要么“大家伙”讨厌我。

1 个答案:

答案 0 :(得分:0)

叹息......第二次我被这个抓住了。我认为我的问题与MVC有关,它与Durandal部署相关:P

请所有阅读此内容的人注意。

部署Durandal项目& 如果您修改任何现有的javascript文件或main.js 。请记得运行 optimizer.exe

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