我不确定这是否是错误的,但是当我生成带有angular的产品时:
"ng build --outputPath=.. --base-href="./path" --prod"
静态资源仍然是从./ root获取的,就像这样:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Ask</title>
<base href="./path">
<link rel="stylesheet" href="styles.3ff695c00d717f2d2a11.css"></head>
<body>
<app-root></app-root>
<script type="text/javascript" src="runtime.a5dd35324ddfd942bef1.js">
</script><script type="text/javascript" src="es2015-polyfills.358ed1827c991dd2afb0.js" nomodule></script><script type="text/javascript" src="polyfills.407a467dedb63cfdd103.js"></script><script type="text/javascript" src="main.d1ac828f1974a06a0fe5.js"></script>
</body>
</html>
它不应该以base-href为前缀吗?
href="path/styles.3ff695c00d717f2d2a11.css"
src="path/runtime.a5dd35324ddfd942bef1.js
答案 0 :(得分:0)
--base-href "xyz"
(注意缺少=
)选项应在您的<base href="xyz">
的{{1}}中生成一个<head>
。
通过这种方式,浏览器在获取资源时执行前缀。
答案 1 :(得分:0)
您应该从命令中删除等号和引号。
ng build --outputPath=.. --base-href ./path --prod
答案 2 :(得分:0)
我最终在这里寻找一个固定的解决方案
<base href="/APP-NAME">
索引文件中的。 JanS的语句“这样,浏览器在获取资源时就使用前缀”触发了我一些错误,因为styles.css是从URL中获取的,而没有添加{/ 3}中的“ / APP-NAME”而不是https://localhost:43468/styles.css。
现在我写下来似乎很明显,我们需要在末尾添加斜杠:
<base href="/APP-NAME/">
这里的误导性问题是,当我们从Visual Studio 2017启动.NET Core Angular应用程序时它起作用了,但是在使用Visual Studio 2019时就不再起作用了。看来在IIS Express上以Visual Studio 2017启动该应用程序都启动应用程序 https://localhost:43468/APP-NAME/styles.css 和 https://localhost:43468 因此,它可以从“错误的” URL中检索静态资源。他们似乎已经解决了在IIS Express中启动2个ulr的问题。