{"id":3703,"date":"2019-12-21T17:00:53","date_gmt":"2019-12-21T09:00:53","guid":{"rendered":"http:\/\/leybreeze.com\/blog\/?p=3703"},"modified":"2019-12-21T17:08:40","modified_gmt":"2019-12-21T09:08:40","slug":"angular-on-azure-web-app-service-iis","status":"publish","type":"post","link":"http:\/\/leybreeze.com\/blog\/?p=3703","title":{"rendered":"Angular on Azure Web App Service (IIS)"},"content":{"rendered":"\n<p>\u90e8\u7f72\u4e8e Azure App Service \u7684 Web App \u4e8b\u5b9e\u4e0a\u8fd0\u884c\u4e8e IIS \uff08Internet Information Services\uff09\uff0c\u56e0\u6b64\u4e5f\u53ef\u4ee5\u901a\u8fc7 web.config \u6587\u4ef6\u6765\u914d\u7f6e\u5b83\u7684\u884c\u4e3a\u3002<\/p>\n\n\n\n<p>\u7531\u4e8e Angular \u662f\u4e00\u79cd SPA Web \u6846\u67b6\uff0c\u9700\u8981\u5bf9 IIS \u505a\u4e00\u4e9b\u989d\u5916\u7684 URL Rewrite \u914d\u7f6e\uff0c\u624d\u80fd\u5728\u6d4f\u89c8\u5668\u5237\u65b0\u9875\u9762\u65f6\u4f9d\u7136\u6210\u529f\u8f7d\u5165\u5185\u5bb9\uff0c\u53c2\u89c1\u4ee5\u4e0b\u4ee3\u7801\u3002<\/p>\n\n\n<pre class=\"lang:default decode:true\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n&lt;configuration&gt;\n    &lt;system.webServer&gt;\n        &lt;rewrite&gt;\n            &lt;rules&gt;\n                &lt;rule name=\"Index Rule\" stopProcessing=\"true\"&gt;\n                &lt;match url=\".*\" \/&gt;\n                &lt;conditions logicalGrouping=\"MatchAll\"&gt;\n                    &lt;add input=\"{REQUEST_FILENAME}\" matchType=\"IsFile\" negate=\"true\" \/&gt;\n                    &lt;add input=\"{REQUEST_FILENAME}\" matchType=\"IsDirectory\" negate=\"true\" \/&gt;\n                &lt;\/conditions&gt;\n                &lt;action type=\"Rewrite\" url=\"\/\" \/&gt;\n            &lt;\/rule&gt;\n            &lt;\/rules&gt;\n        &lt;\/rewrite&gt;\n        &lt;staticContent&gt;\n          &lt;mimeMap fileExtension=\".json\" mimeType=\"application\/json\" \/&gt;\n        &lt;\/staticContent&gt;\n    &lt;\/system.webServer&gt;\n&lt;\/configuration&gt;\n<\/pre>\n\n\n<p>\u89c4\u5219 Index Rule \u7684\u4f5c\u7528\u662f\u628a\u6240\u6709\u5339\u914d\u7684 HTTP \u8bf7\u6c42\u5168\u90fd\u91cd\u5b9a\u5411\u81f3 &#8220;\/&#8221; \u8def\u5f84\uff0c\u4e4b\u540e Angular \u81ea\u5df1\u7684\u8def\u7531\uff08Routes\uff09\u5c06\u4f1a\u7ee7\u7eed\u5de5\u4f5c\uff0c\u5b8c\u6210\u5185\u5bb9\u7684\u8f7d\u5165\u548c\u8df3\u8f6c\u3002\u53ef\u4ee5\u53c2\u8003<a href=\"https:\/\/github.com\/Soyofuki\/AngularGo\/blob\/master\/src\/app\/app-routing.module.ts\">\u6b64\u5904<\/a>\u4e86\u89e3\u5982\u4f55\u5b9e\u73b0 lazy loading \u3002<\/p>\n\n\n\n<p>staticContent \u8282\u70b9\u5219\u5b9a\u4e49\u4e86\u5141\u8bb8\u7684 mimeType\uff0c\u5426\u5219\u76f4\u63a5\u8bbf\u95ee contentType \u4e3a application\/json \u7b49\u7c7b\u578b\u7684\u8bf7\u6c42\u5c06\u8fd4\u56de 404 Not Found\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u90e8\u7f72\u4e8e Azure App Service \u7684 Web App \u4e8b\u5b9e\u4e0a\u8fd0\u884c\u4e8e IIS \uff08Internet In &hellip; <a href=\"http:\/\/leybreeze.com\/blog\/?p=3703\" class=\"more-link\">\u7ee7\u7eed\u9605\u8bfb<span class=\"screen-reader-text\">\u201cAngular on Azure Web App Service (IIS)\u201d<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[145],"tags":[159,164,146],"_links":{"self":[{"href":"http:\/\/leybreeze.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/3703"}],"collection":[{"href":"http:\/\/leybreeze.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/leybreeze.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/leybreeze.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/leybreeze.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3703"}],"version-history":[{"count":5,"href":"http:\/\/leybreeze.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/3703\/revisions"}],"predecessor-version":[{"id":3709,"href":"http:\/\/leybreeze.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/3703\/revisions\/3709"}],"wp:attachment":[{"href":"http:\/\/leybreeze.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3703"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/leybreeze.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3703"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/leybreeze.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3703"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}