13

我面临一个问题,请帮我解决这个问题。问题是,当我ng build在 CLI 中执行并转到 dist 文件夹并运行 index.html 文件时,控制台会收到文件路径的错误。

Failed to load resource: net::ERR_FILE_NOT_FOUND
polyfills.js:1 Failed to load resource: net::ERR_FILE_NOT_FOUND
styles.js:1 Failed to load resource: net::ERR_FILE_NOT_FOUND
scripts.js:1 Failed to load resource: net::ERR_FILE_NOT_FOUND
vendor.js:1 Failed to load resource: net::ERR_FILE_NOT_FOUND
main.js:1 Failed to load resource: net::ERR_FILE_NOT_FOUND
/D:/favicon.ico:1 Failed to load resource: net::ERR_FILE_NOT_FOUND
4

2 回答 2

21

它仅与路径有关,只需在构建时使用--base-href标志如下 -

ng build --prod --base-href ./

现在它会在您的index.html中生成类似于以下内容的行-

<base href="./">
<!-- Note the file names here -->
<script type="text/javascript" src="runtime.30458714a8af1a2e7153.js"></script>
<script type="text/javascript" src="polyfills.db85ebdc34f3cf0f4d3f.js"></script>
<script type="text/javascript" src="scripts.e8fe6486441dc07e00c6.js"></script>
<script type="text/javascript" src="main.f9ea86a83ded92312d0f.js"></script>

而已!它适用于任何地方,您只需要部署生产版本即可开始使用!

另外,请注意,如果您尝试直接从文件中运行 index.html,它将无法正常工作。您需要将它放在 http 服务器上(例如,本地的XAMPP )

于 2018-12-31T08:57:03.240 回答
1

base该属性的默认值href定义为/Angular cli 项目。如果您正在构建项目并通过直接打开 index.html 文件来访问它,.js那么 HTML 想要加载的所有内容都将从'/' directory.

例如,如果您使用的是 windows,并且您的构建存在于 .html 中C:\users\xys\ng\dist\index.html,并且您 <script type="text/javascript" src="runtime.js"></script>的 HTML 中有,则浏览器将.jsC:\runtime.js.

要解决它,您可以将所有文件复制到驱动器的根目录(不建议),或者您可以创建一个本地服务器,然后将静态文件提供给该服务器(首选方法)。

于 2018-12-31T08:37:12.123 回答