2017-07-18 55 views
0

我正在用Angular 4構建MVC5應用程序,我正在使用Angular Cli來創建角度應用程序。Angular Cli懶惰加載MVC5應用程序

我面對的問題我有端口5011上運行的MVC5應用程序,而使用角度cli使用端口4200的角度應用程序。當我運行MVC應用程序時,一切工作正常,除了惰性加載模塊。

因爲懶加載模塊創建chunks.js和那些塊未給出錯誤。但所有其他js加載成功。

這裏的問題是裝載chunks.js

我的MVC應用程序使用的端口5011 角CLI應用程序使用的端口4200 我引用我_Layout.cshtml JS文件如下

<script type="text/javascript" src="http://localhost:4200/inline.bundle.js"></script> 
     <script type="text/javascript" src="http://localhost:4200/polyfills.bundle.js"></script> 
     <script type="text/javascript" src="http://localhost:4200/styles.bundle.js"></script> 
     <script type="text/javascript" src="http://localhost:4200/vendor.bundle.js"></script> 
     <script type="text/javascript" src="http://localhost:4200/main.bundle.js"></script> 

雖然chunks.js嘗試自動從此URL加載

http://localhost:5011/0.chunk.js 

爲什麼chunk端口與Angular cl不同我端口?如何解決這個問題?

+0

我很困惑爲什麼你有角度開發服務器與本地IIS Express一起運行?我假設你的工作流程是通過ng build構建你的角度應用程序,然後通過端口5011在IIS Express上運行它? – 12seconds

回答

0

1)添加在web.config中繼

<system.webServer> 
<modules runAllManagedModulesForAllRequests="true" /> 
<handlers> 
<add name="ApiURIs-ISAPI-Integrated-4.0_2" 
path="/*" 
verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" 
type="System.Web.Handlers.TransferRequestHandler" 
preCondition="integratedMode,runtimeVersionv4.0" /> 
</handlers> 
</system.webServer> 

泰爾IIS來處理路徑用點即0.chunk.js

2)加入繼App_Start/RouterConfig.cs

public static void RegisterRoutes(RouteCollection routes) 
    { 
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
     routes.MapRoute(
     name: "Redirect", 
     url: "{*.url}", 
     defaults: new { controller = "Home", action = "Index" } 
     ); 

    } 

告訴路由器的所有請求重定向到家庭控制器

3)添加的指數的HomeController指數按照方法

public ActionResult Index() 
    { 
     var a = Request.Url.AbsoluteUri.ToString(); 
     var b = Request.RawUrl.ToString(); 
     if(b!="/") return Redirect("http://localhost:4200"+b); 
     return View(); 
    } 

告訴指數法來重定向包含任何要求任何其他文件名到 localhost:4200

究竟發生了什麼是我們的index.cshtml向自己發出請求,我們的塊正在其他服務器上提供,即localhost:4200, 因此,我們在這裏做的是,我們將所有包含路徑塊的請求重定向到localhost: 4200。

它被測試驗證和工作解決方案。

+0

感謝解決方案的人 –

+0

如果它解決了您的問題,我會更高興,我已經測試過它,它的工作原理,它是否適合您? –