当您使用ng build
运行--base-href "/some/path/"
时,为什么angular不会根据路径创建子目录?当我在/ dist /中启动一个http服务器时,我得到了GET /some/path/assets/images/image.png Not Found!
之类的错误。当你查看/dist/
时,问题很明显:只有资源文件夹,而不是其他文件夹。
那么设置baseHref的正确方法是什么?
我尝试完成的是使用不同版本的应用程序(具有不同的i18n语言环境)从同一个域提供但具有不同的baseHref,例如/EN/
,/FR/
等等。 / p>
答案 0 :(得分:0)
我使用i18n的应用程序遇到了同样的问题。首先:Angular仍处于开发阶段,所以例如i18n开箱即用,取决于你想要做什么,这是i18n在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/
前缀