我按照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网站上执行此特定任务的指示,所以我必须做出一些假设。
我所要做的就是将aot文件夹的内容(基于aot expmple)复制到我的开发服务器。
由于我不再使用lite服务器,因此我不需要复制bs-config.json文件。
包已转换为js,css和html文件。 IIS将知道如何处理所有内容(我希望,我也会看到一些地图扩展。我很害怕)。
果然。我将文件移动到我的开发服务器。这是行不通的。我不确定它是否由于我需要完成的一些步骤才能在IIS上工作,如果它是简单的或两者兼而有之。我得到了可怕的"意外的令牌"错误。当我单击错误链接时,它会将我带到我的index.html中引用build.js文件的位置。
我认为这与IIS有关,因为它在使用lite服务器的本地计算机上运行正常。
非常感谢任何帮助或建议。
答案 0 :(得分: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>
希望这有助于其他一些可怜的失去灵魂。问题还没有结束,现在我将处理刷新/未找到的问题。好消息是那里似乎有很多......