使用 Firebase 本地化部署 Angular 10 个应用程序
Deploy Angular 10 app with localize using Firebase
我正在使用 Angular 10(目前最新版本)和 @angular/localize
将我的应用程序翻译成法语和英语。
一切都配置好了。
对于构建,我使用这个命令:
"build:prod": "ng build --prod --localize"
给出:
我想使用 Firebase 部署应用程序。我在 运行 firebase init hosting
时正确设置了所有内容
firebase.json
看起来像:
{
"hosting": {
"public": "dist/myAngularApp",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
]
}
}
现在我的问题是 dist/myAngularApp
的根目录下没有 index.html
文件,因此在部署和定位默认 url 时,没有显示任何内容。
例如:
- 在我定位的浏览器上
https://XXXXXXX.web.app/en/
-> 呈现的英文版本:OK
- 在我定位的浏览器上
https://XXXXXXX.web.app/fr/
-> 呈现的法语版本:OK
- 在我定位的浏览器上
https://XXXXXXX.web.app/
-> Nothing 我希望它重定向到“/en/”相对路径
我想默认呈现应用程序的英文版本,我希望在使用特定选项构建项目时或在 angular.json
文件中指定它。
有什么想法吗?
谢谢!
在您的 firebase.json
:
中为您的托管对象添加重写规则
"rewrites": [
{ "source": "**", "destination": "/en/index.html"}
]
现在您可以设置国际化重写。请添加:
//firebase.json
"i18n": {
"root": "localized-files" //directory that contains your i18n folders
}
Firebase 根据“Accept-Language”header
的值提供内容
完整参考位于:https://firebase.google.com/docs/hosting/i18n-rewrites
我正在使用 Angular 10(目前最新版本)和 @angular/localize
将我的应用程序翻译成法语和英语。
一切都配置好了。
对于构建,我使用这个命令:
"build:prod": "ng build --prod --localize"
给出:
我想使用 Firebase 部署应用程序。我在 运行 firebase init hosting
firebase.json
看起来像:
{
"hosting": {
"public": "dist/myAngularApp",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
]
}
}
现在我的问题是 dist/myAngularApp
的根目录下没有 index.html
文件,因此在部署和定位默认 url 时,没有显示任何内容。
例如:
- 在我定位的浏览器上
https://XXXXXXX.web.app/en/
-> 呈现的英文版本:OK - 在我定位的浏览器上
https://XXXXXXX.web.app/fr/
-> 呈现的法语版本:OK - 在我定位的浏览器上
https://XXXXXXX.web.app/
-> Nothing 我希望它重定向到“/en/”相对路径
我想默认呈现应用程序的英文版本,我希望在使用特定选项构建项目时或在 angular.json
文件中指定它。
有什么想法吗?
谢谢!
在您的 firebase.json
:
"rewrites": [
{ "source": "**", "destination": "/en/index.html"}
]
现在您可以设置国际化重写。请添加:
//firebase.json
"i18n": {
"root": "localized-files" //directory that contains your i18n folders
}
Firebase 根据“Accept-Language”header
的值提供内容完整参考位于:https://firebase.google.com/docs/hosting/i18n-rewrites