在修复网站代码以使用CDN(将所有网址重写为图像,js& css)之后, 我需要测试域上的所有页面,以确保从CDN中获取所有资源。
所有网站页面均可通过链接访问,无需隔离页面。
目前我正在使用FireBug并检查“网络”视图......
是否有一些自动方式来提供域名并请求域名的所有页面+资源?
更新
好的,我发现我可以使用wget
:
wget -p --no-cache -e robots=off -m -H -D cdn.domain.com,www.domain.com -o site1.log www.domain.com
选项说明:
-p
- 下载资源(图片,css,js等)--no-cache
- 获取真实对象,不返回服务器缓存对象-e robots=off
- 忽视robots
和no-follow
指示-m
- 镜像站点(关注链接)-H
- 跨度主机(也可以关注其他域名)-D cdn.domain.com,www.domain.com
- 指定要关注的女巫域名,否则将遵循页面中的每个链接-o site1.log
- 登录文件site1.log -U "Mozilla/5.0"
- 可选:伪造用户代理 - 如果服务器为不同的浏览器返回不同的数据,则非常有用www.domain.com
- 要下载的网站享受!
答案 0 :(得分:9)
wget
文档中有这一点:
实际上,要下载单个页面及其所有必需品(即使 它们存在于不同的网站上),并确保显示该批次 在本地,本作者喜欢另外使用一些选项 到'-p':
wget -E -H -k -K -p http://site/document
关键是-H
选项,表示--span-hosts -> go to foreign hosts when recursive
。我不知道这是否也代表正常的超链接或仅代表资源,但你应该尝试一下。
您可以考虑替代策略。您无需下载资源来测试它们是否从CDN引用。您可以获取您感兴趣的网页的源代码(您可以使用wget
,或curl
或其他内容)以及:
<img />
,<link />
和<script />
是否有CDN链接。 您还应该检查url()
个链接的所有CSS文件 - 它们也应该指向CDN图像。根据您的应用程序的逻辑,您可能需要检查JavaScript代码是否不会创建任何不是来自CDN的图像。