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

Yii2 如何处理爬虫和过时的资产?,yii2,resources,web-crawler,Yii2,Resources,Web Crawler,我的web应用程序出现以下错误: 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应用程序出现以下错误:

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_用户_代理中看到的那样,这是由错误引起的。文件夹7adcf7ba不再存在,因此我认为爬虫程序以某种方式使用缓存数据

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

我不想要一个解决方案,因为它当然不是唯一的网络爬虫程序,我也不想维护几个爬虫程序

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

您必须将以下项的$forceCopy属性设置为TRUE:


您可能希望在开发阶段将其设置为true,以确保发布的目录始终是最新的。在生产服务器上不要将此设置为true,因为这将显著降低性能。发件人:

[编辑]

需要更多的解释

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


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

这不是答案。需要更多的解释。在生产服务器上不要将此设置为true。。。我不会将其设置为真。您会收到一个错误,因为资产未正确发布,因为您删除了它。如果要避免该错误,您需要强制复制。谷歌的Crawler只是用来为搜索引擎中的页面编制索引。不要在生产时将其设置为true,因为在产品环境中,源资产只发布一次,除非通过新版本,否则不得更改
'components' => [
    ...
    'assetManager' => [
        'class' => 'yii\web\AssetManager',
        'forceCopy' => true,
    ],
    ...
],