2017-03-12 28 views
0

有什麼辦法可以配置ng-serve命令在根目錄下提供靜態html文件,並在子目錄中提供角度應用程序?在子目錄中開發角度應用程序


我開發一個角2個應用程序,併爲搜索引擎優化的原因,我想舉辦實際應用中的子目錄而服務從根目錄靜態頁面。事情是這樣的

./ 
    About.html 
    Home.html 
    Contact.html 
    /app 
     app.html //Angular app goes here 

我發現它創建角應用程序,可以住在<base>子目錄的量產版ng build --base-href <base>,但這意味着我不得不單獨開發的角度應用程序,然後導入輸出到我的最終項目。我希望能有更好的解決方案,但我願意接受任何想法。

回答

2

正如您已經意識到的那樣,ng build --base-href <base>選項允許您創建應用程序的生產版本,以瞭解如何從網站的<base>目錄中正常工作。這是謎題的一部分 - 配置Angular能夠從服務器的非根文件夾運行。

第二步是配置您的Angular CLI設置,將您的構建文件放在正確的位置。現在,您可以手動執行此操作 - 將ng-cli應用程序放在完全獨立的文件夾中,並在構建完成後,將Angular應用程序的/ dist文件夾中的工件複製到您的網站目錄結構中。這是做這件事的手工方式。在這種情況下,角度應用程序的/ dist文件夾中的項目基本上是從Web服務器的角度來看的靜態內容,可以這樣對待。

但是,另一種替代方法是查看您的angular-cli.json並根據需要更改apps[0].outDir配置選項。 outDir選項指定在何處放置ng build命令的輸出。默認情況下,它被設置爲/dist,但它可以更改爲您需要的任何內容。

所以,例如,如果我有這樣的結構:

./public 
    About.html 
    Home.html 
    Contact.html 
    /app 
     app.html //Angular app BUILD OUTPUT goes here 
/angular-app // Angular app source code 

我可以有我的角度,應用程序的angular-cli.json配置,使得outDir指向../public/app

即在angular- cli.json

app: [ { 
    "root": "src", 
    "outDir": "../public/app", 
    ...... 
} ] 
+0

啊,我想我明白了。我可以在'/ angular-app'目錄中開發角度應用程序本身。然後,當我想在更大的視野範圍內測試應用程序時,我可以將其構建到適當的目錄,並運行節點服務器來爲所有路線提供服務。謝謝您的幫助! –

相關問題