[英]Elastic beanstalk has its own cache?
我在 CakePHP 3 應用程序中使用彈性 beantalk,我還使用 Po 文件進行翻譯,在儀表板中,用戶可以翻譯句子。
我意識到翻譯的更新僅在新部署后且僅在文件更改(例如 HTML 文件)時才會顯示在前端。 如果我運行一個只更改 Po 文件的部署(有一個腳本可以為每個部署創建 po 文件),則翻譯不會在服務器中更新。 我反復檢查了很多次 po 文件在推送它們之前是否正確更新(它們是:)),但是服務器(EB)中的 po 文件有時沒有更新(這有點隨機)。
我有點困惑,因為代碼會在每次部署和每次用戶更新翻譯時刪除 tmp/cache 文件夾,但似乎仍然有一些緩存。 也許是彈性豆莖緩存? Nginx? 我不使用 Elastic 緩存或類似的東西,正如我上面提到的,cake 將緩存作為二進制文件存儲在 tmp/cache 文件夾中。
注意:當一個新的部署被推送到 EB 時,Po 文件是從頭開始生成的,填充了數據庫中的句子。 如果我檢查生成的文件,一切正常,但問題是服務器 po 文件並不總是更新(這種隨機行為讓我認為這是緩存問題)。
更新:我還意識到,如果我在 a.ebextension 文件中添加一些行(例如一個簡單的“ls”命令),po 文件會在服務器中正確更新(我在那里運行一個命令來刪除緩存文件夾每次部署)。
平台:PHP 7.4 在 64 位亞馬遜上運行 Linux 2/3.3.9
以防萬一它可能有所幫助,這是我在每次部署時運行的 .ebextension 文件:
container_commands:
01-deleteCache:
command: |
rm -fr /var/app/staging/tmp/
mkdir /var/app/staging/tmp
mkdir /var/app/staging/tmp/cache
chown -R webapp:webapp /var/app/staging/tmp
chmod -R 777 /var/app/staging/tmp
chmod -R 775 /var/app/staging/src/Locale/
echo "list cache directory to ensure it is empty"
ls -la /var/app/staging/tmp/cache
/var/app/staging/plugins/MyPlugin/src/Locale/it_IT/MyPlugin.po
注意: ls -la /var/app/staging/tmp/cache命令返回一個空文件夾,因此我可以說蛋糕緩存已正確清除。 謝謝
終於找到了,,。 我刪除了錯誤的目錄,正確的目錄位於 /var/app/current 中,而不是在暫存中。 好吧,正如我之前提到的,我解決了一個環境(暫存),但我在生產中仍然遇到同樣的問題,並且兩個環境都有相同的路徑等......
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.