【发布时间】:2015-09-21 05:17:17
【问题描述】:
我在 rackspace 上托管的远程服务器上更新了一个内置 angularjs 的 Web 应用程序前端,该服务器已经有我在此更新前一天上传的同一 Web 应用程序的先前版本。上传是由本地 (git push) -> bitbucket -> 远程服务器 (git pull) 完成的。上传后,我在 Firefox 中重新加载了网页,但它仍在加载以前的版本,我在 Firefox 的私人窗口和新的 chrome 窗口中尝试了相同的操作,但它仍在加载以前的版本。我试过这些东西:
1) 上传我用过的,
git add --all
git commit -m "my commit"
git push origin master
这里的来源是我的网络应用程序的 bitbucket 存储库 url。然后在服务器上我做了
git fetch
git reset --hard origin/master
这对我来说每次都很好,并且 php 文件在上传文件后会更新,但提供了 angularjs 或 js 文件的旧版本。
2) 我检查了 bitbucket 上的 ManagerService.js 文件是否已更新,以确保 git push 运行良好并且 bitbucket 上有新版本的文件。
3) 我使用 VIM 检查了服务器上的文件,ManagerService.js 文件在服务器上有新的更新代码。
4) 我通过在手机中提供文件的绝对 url(例如 www.example.com/js/services/ManagerService.js)来加载 ManagerService.js 的 url,并且仍然提供旧文件。 到目前为止,我很确定它正在发生,因为 Apache 创建了我的 js 文件的缓存,所以我用谷歌搜索并在我的服务器终端上运行了这个命令 如该网址中所述(http://www.ubuntugeek.com/how-to-clear-cached-memory-on-ubuntu.html)
sync; sudo echo 3 > /proc/sys/vm/drop_caches
5) 我还更改了在 ManagerService.js 中更改的行的顺序,并再次上传。
但还是没有成功。 最后我 git 将项目克隆到一个新目录中,它运行良好。 如果这次我遇到同样的问题,我应该怎么做才能获得新的更新文件。
【问题讨论】:
-
I loaded the url of the ManagerService.js by giving the absolute url of the file in my phone and still the old file was served...这听起来可能是您的手机正在缓存以前版本的 JS 文件。 -
@TimBiegeleisen:我在 chrome 和 firefox 的私有/隐身窗口中加载了带有绝对 URL 的文件 example.com/js/services/managerService.js,但仍然加载了旧文件。你认为apache可以创建js文件的缓存吗?
-
我认为 浏览器 可能是创建缓存的原因。尝试清除 Chrome 和 Firefox 中的浏览器缓存,看看会发生什么。顺便说一句,您的 Git 命令看起来不错,至少粗略一瞥。
-
这似乎是您本地浏览器缓存的问题,我们自己也遇到过多次。继续使用
Ctrl + Shift + Del并尝试重新加载页面。 -
对于任何面临类似麻烦的人,我最好的猜测是它只是缓存的高级案例。我安装了 Web 开发人员工具,并因此禁用了缓存。在我的手机中,我很可能正在从我的桌面获取 chrome 存储的文件。如果您遇到类似的问题,请尝试手动清除缓存。
标签: angularjs git apache caching server