【问题标题】:visual studio not updating html / javascript to server / browserVisual Studio 未将 html / javascript 更新到服务器 / 浏览器
【发布时间】:2013-03-26 20:10:06
【问题描述】:

这是一个使用 Hot Towel SPA 模板的 MVC 4 应用程序。每当我更改 HTML 和/或 javascript 中的任何内容时,我可以让新代码显示的唯一方法是清除浏览器缓存。 F5,cntrl-F5,shift-F5,什么都没用。

我通常不是网络开发人员,只是学习这个。我以前做过常规的 MVC 并且没有遇到这个问题,也许它与我的项目中 HTML 和 javascript 的位置有关(即在 /App 文件夹中)?我要疯了才想办法解决这个问题。

我可以完全删除一个 HTML 文件并运行该应用程序,它仍然可以正常运行。清除缓存并运行,然后我得到更新。

它使用 IIS express 运行,使用 Firefox、Chrome、IE...

谢谢..

【问题讨论】:

    标签: asp.net-mvc visual-studio asp.net-mvc-4 single-page-application


    【解决方案1】:

    在 Opera 和 Chrome(可能还有其他)中,您可以在“开发模式”中禁用缓存。

    在 DevTools 中,设置菜单中的第二个选项是

    禁用缓存(在 DevTools 打开时)

    【讨论】:

    • 这仅在问题出在浏览器端(我之前也遇到过)时解决问题,但如果问题出现在 angular-.net 保存更改的文件之间,则无法解决
    【解决方案2】:

    转到您的 web.config 文件并在其中进行更改。无论您进行什么更改。例如键入一个字符,然后删除它并构建项目并再次运行它。我希望它可以工作。

    【讨论】:

    • 请接受这个作为答案。当您在开发之外浏览时,关闭浏览器中的缓存并不好
    • 这对我不起作用,仍然加载并执行“动态”中的旧 *.js 文件。唯一的效果是 VS 会强制你重新启动调试会话。
    • 这对我有用,尽管我已经尝试了其他所有方法
    • 我做到了,但仍有问题。我在实时网站上没有看到任何变化。
    • 经过数小时尝试解决此问题后,此解决方案最接近。但是,一旦我再次打开缓存,我仍然会得到错误的页面。有什么想法吗??
    【解决方案3】:

    我也遇到过这个问题,结果发现它与缓存有关。

    如果使用 Chrome DevTools,您可以通过导航到 Network 选项卡并勾选 Disable Cache

    来禁用缓存

    这只会在开发工具打开时禁用缓存。

    【讨论】:

    • 这真的很有帮助,我认为应该标记为正确的解决方案
    【解决方案4】:

    ctrl+shift+F5 可以解决问题!似乎浏览器缓存是问题的一部分:)

    【讨论】:

      【解决方案5】:

      在我的情况下,iis express 没有更新站点,但是由 iis Manager 创建的站点工作正常?

      这个问题的可能解决方案是 在 Visual Studio 中设置“将此 64 位版本的 iis express 用于网站和项目”选项 它位于 options->Projects and Solutions->Web 项目

      【讨论】:

        【解决方案6】:

        浏览器默认缓存。您可以在浏览器中关闭缓存以获取更改的文件。

        【讨论】:

        • 查看 Hamid 的其他解决方案,此答案仅适用于临时重新缓存内容,但应重新打开缓存。
        • 此答案适用于开发时。开发中此设置应始终开启
        【解决方案7】:

        我发现我在 Chrome 开发者工具 -> 源视图 中打开了 .js 文件。

        当我在那里关闭文件刷新页面时,新的 .js 文件按预期显示。

        【讨论】:

        • 这是我的问题,但为什么呢?我确实在打开页面时刷新了页面,也许 chrome 工具没有更新文件?
        【解决方案8】:

        我在服务器上移动 .ts 和 .html 文件时遇到问题,我必须:

        1. 停止调试
        2. 清除我的 ClientApp 中的整个 output/dist 文件夹
        3. 再次开始调试
        4. Ctrl-F5 强制在浏览器上刷新缓存

        简单地禁用浏览器的缓存,或者强制 .net 应用重新编译,甚至运行 ng serve 都没有效果。

        【讨论】:

          【解决方案9】:

          以上列出的方法都不能始终如一地工作,如果认为任务窗格中使用了不同的浏览器,具体取决于所使用的 Windows 版本/构建,那么您可能必须在每种情况下清除不同浏览器的缓存。

          然而,真正的问题似乎不在于浏览器缓存,而在于 VS 决定将哪些文件部署到用于测试/开发的本地 IIS Express 服务器。在许多情况下,当按下“开始”按钮时,即使您还修改了 web.config 文件,修改后的 html 和/或 js 文件也不会进入本地部署。

          我始终如一地完成这项工作的方式是我选择了 Web 应用程序项目(在解决方案资源管理器中),打开属性,单击“打包/发布 Web”选项卡,然后在“要部署的项目”下选择“此中的所有文件项目”。

          对我来说很好用!

          【讨论】:

          • 起初没有用,因为我在项目属性中进行了此更改后需要清除缓存。但是现在当我更改 .js 文件时,它会自动运行,而无需一直清除缓存。谢谢你!
          【解决方案10】:

          如果你只是想在本地测试你可以试试

          A) 创建虚拟目录 遵循以下路径:项目/属性/Web
          查找服务器部分 点击创建虚拟目录

          B) 遵循以下路径:项目/属性/Web
          查找服务器部分 单击下拉并在 Express 和 Local 之间更改所选值 然后创建虚拟目录

          【讨论】:

            【解决方案11】:

            如果禁用缓存和编辑 web.config 文件不起作用。

            只需关闭解决方案并重新打开它并尝试。奇怪,但它对我有用。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2010-12-06
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-09-11
              相关资源
              最近更新 更多