[Tp5デプロイメント] [Linux環境]キャッシュの問題は、「view_replace_str」パラメーター構成の変更が無効であることが原因で発生します

問題の紹介

tp5プロジェクトは最近クラウドサーバーにデプロイされました。プロジェクトをWin10からLinuxに移植するため、一部の場所を変更する必要があります。これには、ビュー出力文字列 'view_replace_str'が含まれます。

権限の問題も比較的一般的です。以前にブログを書いたことがあるので、ここでは詳しく説明しません。このブログでは、2つの問題について説明しています。

1.Linux環境で「view_replace_str」を変更する方法

2.変更後、「view_replace_str」は有効になりません

1.Linux環境で「view_replace_str」を変更する方法

正しい構成:

// 视图输出字符串内容替换
    'view_replace_str'       => [
        '__admin__' => '/static/assets',
        '__index__' => '/static/index'
    ]

なぜこのように書くのですか?Linuxでは「/」は「ルートディレクトリ」を意味することをご存知でしょうが、ここでの最初の「/」は明らかにシステム全体のルートディレクトリを表すものではありません。どういう意味ですか?現在のプロジェクトの仮想ディレクトリパスを参照する必要があります

tp5エントリファイルindex.phpのデフォルトの場所は、パブリックディレクトリです。もちろん、プロジェクトのルートディレクトリに移動することもできます(これはお勧めしません)。エントリファイルindex.phpがパブリックディレクトリにある場合、プロジェクトの仮想ディレクトリはパブリックディレクトリを直接指している必要があります。

私のプロジェクトは上記の状況にあるので、上のスクリーンショットの「/」はパブリックディレクトリを指します!

誰かが尋ねるかもしれません:それは「静的/資産」として書くことができますか?あなたが興味を持っているなら、あなたはそれをテストすることができます、私はそれがうまくいかないはずだと思います。

2.変更後、「view_replace_str」は有効になりません

テストのため、view_replace_strを数回変更しましたが、変更が有効にならなかったことがわかりました。view_replace_strエラーにより、ページにアクセスできたにもかかわらず静的リソースパスが間違っていたため、静的リソースを読み込めませんでした。

この問題は長い間私を悩ませてきました。テストを繰り返した後、tp5のキャッシュの問題であると思われたので、次のブログを見つけました。

https://blog.csdn.net/sinat_41274057/article/details/100658809

テストの結果、キャッシュの問題が原因であることが判明しました。上記のブログの方法は実際に実行可能です。しかし、問題は、フレームワークコードを直接変更してはならないということです。では、tp5は、テンプレートのキャッシュを有効または無効にするための関連する構成パラメーターを提供しますか?

残念ながら、tp5の公式ドキュメントには見つかりませんでした。しかし、ソースコードを調べると、そこにあることがはっきりとわかります。

thinkphp \ library \ think \ Template.php

上記の$ configのパラメーター名を見て、おなじみですか?config.phpで見たからです。

したがって、構成パラメーターを使用してテンプレートのキャッシュを無効にし、view_replace_strの無効な変更の問題を解決する場合は、次のパラメーターを追加するだけです。

先生とのコミュニケーションの過程で、先生は実行時にキャッシュをクリアしようと試みることができると言いました。しかし、私はそれを試していません。上記の解決策が機能するため、私はそれを試しませんでした。

おすすめ

転載: blog.csdn.net/qq_43290318/article/details/107218094