【问题标题】:MVC 4: Durandal bundling cacheMVC 4:Durandal 捆绑缓存
【发布时间】: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


    【解决方案1】:

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

    所有阅读本文的人请注意。

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

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

    【讨论】:

      猜你喜欢
      • 2013-01-21
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 2017-03-25
      • 1970-01-01
      • 2013-02-21
      • 2012-10-15
      相关资源
      最近更新 更多