【问题标题】:How to deal with crawler and outdated assets?如何处理爬虫和过时的资产?
【发布时间】:2017-12-04 07:47:18
【问题描述】:

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

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

它是由web crawler of Google 引起的,正如我在 HTTP_USER_AGENT 中看到的那样。 7adcf7ba 文件夹不存在(不再存在),所以我认为爬虫以某种方式使用缓存数据。

如何防止爬虫尝试访问这个过时的资源文件并使用当前的?

我不想要Google's Search Console 的解决方案,因为它当然不是唯一的网络爬虫,而且我不想维护多个爬虫。

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

【问题讨论】:

    标签: yii2 resources web-crawler


    【解决方案1】:

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

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

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

    [编辑]

    需要更多解释

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

    因此,您可以配置 robots.txt 以允许或不允许爬虫将其搜索引擎中的特定页面编入索引,但不能避免资产错误。资产的发布是另一回事。

    【讨论】:

    • 这不是答案。需要更多解释。 不要在生产服务器上将此设置为 true ...我不会将其设置为 true。
    • 您收到错误消息,因为资产未正确发布,因为您已将其删除。如果您想避免该错误,您需要强制复制。 google的爬虫只是为了在搜索引擎中索引一个页面。
    • 不要在生产环境中将此设置为 true,因为在 prod 环境中,源资产是一次性发布的,除非发布新版本,否则不得更改它们
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-27
    • 2012-01-29
    • 1970-01-01
    • 2019-11-07
    • 2011-04-15
    • 1970-01-01
    • 2015-08-01
    相关资源
    最近更新 更多