任何时候,我在.hmtl文件或.js文件中进行代码更改,浏览器仍会呈现旧代码,并且我的新代码更改不会显示在浏览器结果中。
例如,我在.html文件中添加以下两行代码。
<div class="control-group">
<label class="control-label">First Name</label>
<div class="controls readonly">
{{profile.FirstName}}
</div>
</div>
<div class="control-group">
<label class="control-label">Last Name</label>
<div class="controls readonly">
{{profile.LastName}}
</div>
</div>
然后我执行以下操作:
我做错了什么?
答案 0 :(得分:47)
在浏览器中按F12以显示开发人员工具。禁用缓存。重新加载您的页面。
答案 1 :(得分:21)
除了使用Dev Tools确保禁用缓存之外,您还可以编辑Web.config
文件并告诉IIS不要缓存Angular文件:
<configuration>
<!-- Disable IIS caching for directories containing Angular templates and scripts -->
<location path="app">
<system.webServer>
<staticContent>
<clientCache cacheControlMode="DisableCache"/>
</staticContent>
</system.webServer>
</location>
...
</configuration>
我的Angular根目录是app/
。您可能需要根据文件结构进行修改。
答案 2 :(得分:7)
仅限TypeScript!
在tsconfig.json中添加...
var inProgress = filteredEvents.Where(fe => fe.Key.EventStatusKey == InProgress)
.SelectMany(g => g);
答案 3 :(得分:5)
答案 4 :(得分:2)
在chrome中打开devTools并选择Network选项卡,在Network选项卡中取消选中Disable cache并重新加载页面。
答案 5 :(得分:1)
就我而言,Angular.json文件"deployUrl"
中的问题:应该是相对路径,例如"/support/yourpagenam/bundle/dist/"
因此,对Angular文件所做的任何更改都不会反映到浏览器。
答案 6 :(得分:1)
从源代码中的clientApp文件夹中删除dist文件夹解决了我的问题,并且再次开始自动刷新
答案 7 :(得分:1)
我只是在Visual Studio中删除了dist文件夹,它再次自动刷新。
****这是针对Angular 7 ***
答案 8 :(得分:1)
您需要运行命令yarn webpack:build
来重新编译客户端代码。否则,.HTML
,.json
,.ts
文件中的修改/更新将不会被反映。
答案 9 :(得分:1)
答案 10 :(得分:1)
您需要将aspnetcore环境变量从生产更改为开发。来自official website:
...设置一个环境变量,告诉ASP.NET在开发模式下运行:
如果您使用的是Linux,则可能需要以超级用户身份进行操作。即。
sudo export ASPNETCORE_ENVIRONMENT=Development
重新启动后,变量的值可能会恢复为Production
。如果您想使用多个环境,我建议您在launchSettings.json
文件中定义它们:
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:40088/",
"sslPort": 0
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"IIS Express (Staging)": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Staging"
}
}
}
}
了解环境here:
答案 11 :(得分:1)
对我来说,之前的答案都没有奏效。我使用的是Chrome,我能够查看更新的唯一方法是打开一个隐身窗口。我的常规浏览器窗口由于某种原因,不会获得最新的资产。
我已经尝试清除缓存,禁用devtools上的缓存和硬刷新,但无济于事。我能够修复它的唯一方法是清除DNS缓存。这是一个包含更多细节的链接:
How to Clear the DNS Cache on Computers and Web Browsers
使用命令行,您可以按照以下方式进行操作:
Windows 7&amp;较早强>
ipconfig /flushdns
Windows 8
ipconfig /flushdns
OSX(Yosemite,El Capitain和Sierra)
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
答案 12 :(得分:1)
或者您可以在Visual Studio 2013中使用Browserlink自动重新加载页面
http://www.asp.net/visual-studio/overview/2013/using-browser-link
答案 13 :(得分:0)
设置HTTP响应标头以通过IIS管理器使内容过期。
https://www.iis.net/configreference/system.webserver/staticcontent/clientcache
答案 14 :(得分:0)
我在隐身模式下打开了链接,因为在该模式下,缓存被禁用,而Voila起作用了。
答案 15 :(得分:0)
这是因为浏览器存储了缓存。在运行应用程序之前,您可以删除浏览器存储的缓存和cookie。
答案 16 :(得分:0)
<强> For Client-side (Browser) caching of static files in dev enviornment
强>
'http://[your-host/localhost]:[specified port of your application]/app/home/home-account.js
。这将显示内容。然后再次导航到您的应用程序的主页,即在这种情况下'http://[your-host/localhost]:[specified port of your application]/'
<强> For Server-side (IIS-Express) caching of static files in dev enviornment
强>
访问IIS Express appcmd命令行实用程序。在我的例子中,appcmd位于“C:\ Program Files(x86)\ IIS Express \ appcmd.exe”这个路径中。然后使用SITE list
和SITE delete
命令删除iisexpress中缓存的临时文件。
还有一个特定于此处提到的IE的解决方案: Visual Studio 2013 caching older version of .js file
答案 17 :(得分:0)
只需右键单击浏览器上的页面重新加载按钮,然后选择“清空缓存并强制重新加载”