Angular on Azure Web App Service (IIS)

部署于 Azure App Service 的 Web App 事实上运行于 IIS (Internet Information Services),因此也可以通过 web.config 文件来配置它的行为。

由于 Angular 是一种 SPA Web 框架,需要对 IIS 做一些额外的 URL Rewrite 配置,才能在浏览器刷新页面时依然成功载入内容,参见以下代码。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Index Rule" stopProcessing="true">
                <match url=".*" />
                <conditions logicalGrouping="MatchAll">
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                </conditions>
                <action type="Rewrite" url="/" />
            </rule>
            </rules>
        </rewrite>
        <staticContent>
          <mimeMap fileExtension=".json" mimeType="application/json" />
        </staticContent>
    </system.webServer>
</configuration>

规则 Index Rule 的作用是把所有匹配的 HTTP 请求全都重定向至 “/” 路径,之后 Angular 自己的路由(Routes)将会继续工作,完成内容的载入和跳转。可以参考此处了解如何实现 lazy loading 。

staticContent 节点则定义了允许的 mimeType,否则直接访问 contentType 为 application/json 等类型的请求将返回 404 Not Found。

复旦大学校歌

刘大白 词
丰子恺 曲

歌词:
复旦复旦旦复旦,巍巍学府文章焕,
学术独立思想自由,政罗教网无羁绊,
无羁绊前程远,向前,向前,向前进展。
复旦复旦旦复旦,日月光华同灿烂。
复旦复旦旦复旦,师生一德精神贯,
巩固学校维护国家,先忧后乐交相勉,
交相勉前程远,向前,向前,向前进展。
复旦复旦旦复旦,日月光华同灿烂。
复旦复旦旦复旦,沪滨屹立东南冠,
作育国士恢廓学风,震欧铄美声名满,
声名满前程远,向前,向前,向前进展。
复旦复旦旦复旦,日月光华同灿烂。