如何处理爬虫和过时的资产?

时间:2017-12-04 07:47:19

标签: yii2 resources web-crawler

我的网络应用程序出现以下错误:

2017-12-02 22:32:39
[10.133.0.13][-][-][error][yii\web\HttpException:404]
yii\base\InvalidRouteException: Unable to resolve the request
"assets/7adcf7ba/site.css". in
/var/www/html/my-website/vendor/yiisoft/yii2/base/Module.php:537

这是由我在HTTP_USER_AGENT中看到的web crawler of Google引起的。文件夹7adcf7ba不存在(不再),所以我认为抓取工具以某种方式使用缓存数据。

如何防止抓取工具尝试访问此过时的资源文件并使用当前的资源文件?

我不想要Google's Search Console的解决方案,因为它不是唯一的网络抓取工具,当然,我也不想维护多个抓取工具。

我可以使用robots.txt吗?元标签?特殊属性?我该怎么办?

1 个答案:

答案 0 :(得分:1)

您必须将yii\web\AssetManager$forceCopy属性设置为TRUE:

'components' => [
    ...
    'assetManager' => [
        'class' => 'yii\web\AssetManager',
        'forceCopy' => true,
    ],
    ...
],

" 您可能希望在开发阶段将其设置为true,以确保发布的目录始终是最新的。不要在生产服务器上将其设置为true,因为它会显着降低性能。"来自:$forceCopy

<强> [编辑]

需要更多解释

&#34;爬虫(也称为蜘蛛或机器人)是一种通过代表搜索引擎以有条理和自动的方式分析网络数据的软件。爬虫通常会获取所有访问过的文档的文本副本,并将其插入索引中。 Web上有一种极为常见的爬虫用途。在Web上,爬虫依赖于搜索引擎提供的要访问的URL列表(最初基于用户建议的地址或者程序员自己预先填写的列表)。分析URL时,它会识别文档中的所有超链接,并将它们添加到要访问的URL列表中。该过程可以手动结束,也可以在遵循一定数量的链接之后结束。此外,互联网抓取工具可以选择由&#34; robots.txt&#34;文件位于站点的根目录中。在此文件中,您可以指出不应分析哪些页面。抓取工具有权遵循建议,但没有义务。&#34; 来自:Web crawler

因此,您可以配置robots.txt以允许抓取工具为搜索引擎中的特定网页编制索引,但不能避免资产错误。资产的公布是另一回事。

相关问题