Angular:设置baseHref不会创建子文件夹

问题描述 投票:1回答:1

当您使用ng build运行--base-href "/some/path/"时,为什么angular不会根据路径创建子目录?当我在/ dist /中启动一个http服务器时,我得到的错误就像GET /some/path/assets/images/image.png Not Found!一样。当你研究/dist/时,问题很明显:只有资源文件夹直接存在,而不是在其他文件夹中。

那么设置baseHref的正确方法是什么?

我试图完成的是使用不同版本的应用程序(具有不同的i18n语言环境)从同一个域提供但具有不同的baseHref,例如/EN//FR/等。

angular deployment webserver web-deployment angular-routing
1个回答
0
投票

我使用i18n的应用程序遇到了同样的问题。首先:Angular仍处于开发阶段,所以例如i18n开箱即用,取决于你想要做什么,这是i8n在GitHub上的路线图#16477可能仍然在版本5中他们想要实现动态翻译所以你每种语言都不需要不同的应用程序,但这是一个不同的问题;)

我想你在寻找:

--output-path

使用此命令设置实际文件的存储路径(来自Angular wiki--base-href仅在index.html中设置href属性,但由于您要设置文件的路径,因此需要使用--output-path

我不确定你是否还需要为你的应用设置--deploy-url,无论如何--deploy-url /en创建以下index.html

    <!doctype html>
    <html lang="en">
    <head>
      <meta charset="utf-8">
      <title>Title</title>
      <base href="/">
      <meta name="viewport" content="width=device-width,initial-scale=1">
      <link rel="icon" type="image/x-icon" href="assets/favicon_link_icon.png">
      <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
      <link href="/en/styles.xxx.bundle.css" rel="stylesheet"/>
    </head>
    <body>
    <app-root></app-root>
    <script type="text/javascript" src="/en/inline.xxx.bundle.js"></script>
    <script type="text/javascript" src="/en/polyfills.xxx.bundle.js"></script>
    <script type="text/javascript" src="/en/main.xxx.bundle.js"></script>
    </body>
    </html>

--output-path ./dist/en创建一个新的文件夹dist/en与几乎相同的index.html只有src路径缺少/en/前缀

© www.soinside.com 2019 - 2024. All rights reserved.