我正在開發 React Web 應用程式,我使用i18n和i18next-browser-languagedetector來翻譯應用程式。在我的本地一切正常,即使在服務器上也以相同的方式作業。但是我在 aws s3 存盤桶上遇到了問題。在我構建我的 React 專案并將其上傳到 s3 存盤桶后,i18n 停止正常作業。
我是 aws 的新用戶,所以也許我做錯了什么,對此感到抱歉。
我的 s3 存盤桶配置:
具有以下重定向規則的靜態網站托管
[
{
"Condition": {
"HttpErrorCodeReturnedEquals": "404"
},
"Redirect": {
"HostName": "my-bucket-name.s3-website-sa-east-1.amazonaws.com",
"ReplaceKeyPrefixWith": "#!/"
}
},
{
"Condition": {
"HttpErrorCodeReturnedEquals": "403"
},
"Redirect": {
"HostName": "my-bucket-name.s3-website-sa-east-1.amazonaws.com",
"ReplaceKeyPrefixWith": "#!/"
}
}
]
首先,我將路徑中的當前語言作為my-bucket-name.s3-website-sa-east-1.amazonaws.com/en/ 傳遞,但是當我加載 Web 應用程式時,即使我在其中設定了另一種語言,我也總是看到檢測到的語言 en路徑。然后我嘗試將語言作為my-bucket-name.s3-website-sa-east-1.amazonaws.com/?lang=en放入查詢字串中,但我遇到了同樣的錯誤行為。
我的 i18n 檔案。
import i18n from "i18next";
import LanguageDetector from "i18next-browser-languagedetector";
const options = {
order: ['querystring'],
lookupQuerystring: 'lng',
};
const languages = ["en", "pt"]
i18n.use(LanguageDetector).init({
detection: options,
resources: {...},
fallbackLng: "en",
debug: true,
whitelist: languages,
checkWhitelist: true ,
ns: ["translations"],
defaultNS: "translations",
keySeparator: false,
interpolation: {
escapeValue: false,
formatSeparator: ","
},
react: {
wait: true
}
});
export default i18n;
我還嘗試將后備語言設定為pt,在這種情況下,在 aws s3 存盤桶上,即使在我設定的路徑或查詢字串中,它也始終檢測為 pt。
所以它總是出于某種原因使用后備語言。
為什么語言檢測可能不適用于 aws s3 存盤桶?也許有人面臨類似的問題?
uj5u.com熱心網友回復:
我遇到了同樣的問題,我無意中找到了解決方案。檢查您在錯誤檔案欄位中是否以與索引檔案欄位相同的方式撰寫了 index.html 。如果有斜線,請將其洗掉。
此外,將重定向規則欄位設為空。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/374067.html
標籤:javascript 反应 亚马逊网络服务 亚马逊-s3 下一个
