2017-12-04 12 views
0

私は自分の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_USER_AGENTでそれを見るとそれはweb crawler of Googleによって引き起こされました。フォルダ7adcf7baは存在しません(それ以上)ので、クローラは何とかキャッシュデータを使用しています。

クローラがこの古くなったリソースファイルにアクセスして現在のファイルを使用しようとしないようにするにはどうすればよいですか?

Google's Search Consoleのソリューションは欲しいとは限りません。もちろん、これは唯一のWebクローラーではないため、いくつかのクローラを保守したくありません。

robots.txtを使用できますか?メタタグ?特別な属性?私はどうすればいいのですか?

答えて

1

あなたがTRUEにyii\web\AssetManager$forceCopyプロパティを設定する必要があります。

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

あなたが出版されたディレクトリは、常に最新であることを確認するために、開発段階で真であるために、これを設定することもできます。それが大幅にパフォーマンスが低下しますと本番サーバー上でこれをtrueに設定しないでください」から:。$forceCopy

[編集]

詳細説明は、

「クローラーが(また、スパイダーやロボットと呼ばれる)を必要とされる通常の検索エンジンの代わりに、系統的かつ自動的な方法でネットワークのデータを分析するソフトウェアであります。クローラは、通常、訪問されたすべてのドキュメントのテキストコピーを取得し、インデックスに挿入します。 非常に一般的なクローラの使用はWeb上にあります。 Web上では、クローラは、検索エンジンによって提供される訪問先のURLのリスト(最初はユーザーが提案したアドレスまたはプログラマ自身が事前に入力したリストに基づいています)に依存しています。 URLを分析すると、ドキュメント内のすべてのハイパーリンクが識別され、訪問するURLのリストに追加されます。このプロセスは、手動で、または一定数のリンクをたどった後に終了することができます。さらに、インターネットクローラは、サイトのルートにある "robots.txt"ファイルによって指示されるオプションがあります。このファイル内で、分析しないページを指定することができます。クローラはアドバイスに従う権利、義務ではないが持っている「をから:。Web crawler

ですから、回避の資産のための彼の検索エンジンでインデックスの特定のページへのクローラーを許可するかどうかのためにrobots.txtを設定することはできませんが、

+0

これは答えではありませんより多くの説明が必要です_プロダクションサーバーでこれをtrueに設定しないでください... ...私はそれを設定しません – robsch

+0

あなたがそのエラーを避けたい場合は、コピーを強制する必要があります。googleのクローラは、検索エンジンのページのインデックスを作成するためのものです。 – alvarofvr

+0

プロダクションでこれをtrueに設定しないでください私によると元の資産は一度公開され、新しいリリース以外では変更してはいけません – alvarofvr

関連する問題