静态资源忽略了角度<base href =“ ./ path” />

时间:2019-02-28 13:21:10

标签: javascript angular

我不确定这是否是错误的,但是当我生成带有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

3 个答案:

答案 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.csshttps://localhost:43468 因此,它可以从“错误的” URL中检索静态资源。他们似乎已经解决了在IIS Express中启动2个ulr的问题。