1

按照 Angular.io Tour of Heros 示例中概述的步骤,我已经为一个稍微简单的应用程序建模。

https://angular.io/docs/ts/latest/tutorial/

我还根据这个例子实现了 AOT 编译: https ://angular.io/docs/ts/latest/cookbook/aot-compiler.html

直接来自 Angular.io 网站的非常标准的东西。

在我的开发机器上,应用程序的 JIT 版本在 lite 服务器上运行良好。在我的开发机器上,应用程序的 AOT 版本在 lite 服务器上运行良好。

是的!!!世界是有道理的!好的。现在是时候将应用程序移至我的 2012/IIS 8 开发服务器了。粗略地说,在 Angular.io 网站上没有执行此特定任务的说明,因此我必须做出一些假设。

  1. 我所要做的就是将 aot 文件夹的内容(基于 aot 示例)复制到我的开发服务器。

  2. 由于我不再使用 lite 服务器,因此不需要复制 bs-config.json 文件。

  3. 该包已转换为 js、css 和 html 文件。IIS 将知道如何处理所有内容(我希望,我也在那里看到了一些地图扩展。我很害怕)。

果然。我将文件移动到我的开发服务器。这没用。我不确定它是否是由于我需要完成某些步骤才能使 aot 在 IIS 上工作,是简单的还是两者兼而有之。我收到可怕的“意外令牌”错误。当我单击错误链接时,它会将我带到我的 index.html 中引用我的 build.js 文件的位置。

在此处输入图像描述

在此处输入图像描述

我认为这与 IIS 有关,因为它在使用 lite 服务器的本地计算机上运行良好。

任何帮助或建议将不胜感激。

4

1 回答 1

1

找到了答案

我认为问题源于应用程序位于 Web 服务器上的虚拟目录中。它位于名为dashboard 的虚拟目录中。所以...我必须对 index.html 进行以下更改才能使其正常工作:更改<base href="/"><base href="/Dashboard">

将文件引用更改<script src="dist/build.js"><script src="Dashboard/dist/build.js">

完整的 index.html

<!DOCTYPE html>
<html>
  <head>
    <base href="/Dashboard">
    <title>My Dashboard</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="Dashboard/styles.css">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.5/css/bootstrap.min.css">
    <!-- Polyfill(s) for older browsers -->
    <script src="dashboard/shim.min.js"></script>
    <script src="Dashboard/zone.min.js"></script>
    <script>window.module='aot';</script>
  </head>
  <body>
    <my-app>Loading AppComponent content here ...</my-app>
  </body>
  <script src="Dashboard/dist/build.js"></script>
</html>

希望这可以帮助其他一些可怜的迷失的灵魂。问题还没有结束,现在我将处理刷新/未找到的问题。好消息是那里似乎有很多关于这...

于 2017-01-20T22:54:58.590 回答