首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何为i18n角应用程序重定向资产和页面URL

如何为i18n角应用程序重定向资产和页面URL
EN

Stack Overflow用户
提问于 2022-03-07 20:39:52
回答 2查看 602关注 0票数 0

我正在国际化的过程中,一个角11申请。ng serve的情况很好,但我在部署时遇到了问题,因为我无法解决以下问题:

  • 确保正确地加载了代码中引用为/assets/picture.png的资产(即在/xx/assets/picture.png中转换了xxenfr等语言):它们触发了404错误。
  • 确保URL (如https://example.com/records/12 )不会触发错误,并自动转换为https://example.com/xx/records/12 (其中xxenfr等语言)。

angular.json文件包含标准内容:

代码语言:javascript
运行
复制
      "i18n": {
        "sourceLocale": "fr",
        "locales": {
          "en": {
            "translation": "src/locale/messages.en.xlf"
          }
        }
      }
...
      "localize": true
...

该应用程序是用ng build --prod --localize用2种语言构建的,它在dist中生成2个enfr子文件夹,然后我将其部署到服务器根目录下,在下面的.htaccess文件旁边:

代码语言:javascript
运行
复制
RewriteEngine on
RewriteBase /
RewriteRule ^../index\.html$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (..) $1/index.html [L]

RewriteCond %{HTTP:Accept-Language} ^en [NC]
RewriteRule ^$ /en/ [R]

RewriteCond %{HTTP:Accept-Language} !^en [NC]
RewriteRule ^$ /fr/ [R]

(请注意,fr是源和默认区域设置,en是一个翻译)

我设想这个问题来自于.htaccess文件,因为那里没有指定https://example.com/assets/picture.png应该转换为https://example.com/en/assets/picture.png,对于角路由的URL也是如此。

你能告诉我怎么解决这个问题吗?

注意:通过查看生成的网页的源代码,我可以验证它是否包含适当的href,例如对于fr

代码语言:javascript
运行
复制
<!doctype html>
<html lang="fr">
<head>
  <meta charset="utf-8">
  <title>MyApp</title>
  <base href="/fr/">
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71386998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档