使用最新的angular-cli,我創建了新的項目,一切正常。接下來,我嘗試將它集成到Laravel 5.3中。我有這個項目與systemjs一起工作,但我想切換到webpack並利用angular-cli。Angular 2 + angular-cli + Laravel 5.3
問題是在angular-cli.json中,我無法指定該索引是index.php
,它只接受HTML。
基本上,我無法使用此設置啓動Angular應用程序。
我該如何克服這個問題?
使用最新的angular-cli,我創建了新的項目,一切正常。接下來,我嘗試將它集成到Laravel 5.3中。我有這個項目與systemjs一起工作,但我想切換到webpack並利用angular-cli。Angular 2 + angular-cli + Laravel 5.3
問題是在angular-cli.json中,我無法指定該索引是index.php
,它只接受HTML。
基本上,我無法使用此設置啓動Angular應用程序。
我該如何克服這個問題?
最後,我分離了Laravel和Angular 2,正如Cristian Sepulveda在評論中寫道的。無論如何,這是推薦的方法。
我使API與Laravel並與角2
我怎樣才能使API在Laravel使用它? – huykon225
我有同樣的問題,我發現這是related issue in their GitHub issues:
輸出文件夾將始終被完全取代。您可以使用公共/文件夾來讓您的index.php文件複製到您的輸出文件夾,或將應用程序輸出到單獨的文件夾並自行復制文件。
這是設計,不會改變。這是一個生成輸出文件夾,不是一個部署文件夾。你應該分開這兩個步驟。
所以,你不能真正達到你想要的,但這是我發現的唯一解決方法。
在我的情況下,我服務從拉拉維爾角應用程序。我仍然使用webpack來構建我的資產,但有一個吞噬任務,它將角度index.html複製爲laravel應用程序所服務的index.blade.php。 我也使用gulp將構建的文件從/ dist複製到/ public
我只爲我找到了一個解決方案。
ng build --prod
gulp copy
(在這裏你可以檢查,如果舊的生成文件時存在刪除)gulp inject
- 這可以在CI中使用並使用自動化工具完成。結果我們有inline.js和三個*。**。bundle.js文件被注入。在相同的主佈局中,我已經靜態添加<base href="/example">
(您可以使用Laravel路徑中的任何根路徑定義)以及從此路徑加載的模板文件(在我的示例中爲'example.blade.php')添加角2根元素<st-example>Loading...</st-example>
- 通過這個設置,你有根Laravel佈局,其內部需要角2根URL href並從構建注入腳本文件。而你當前路由的模板文件裏面有根元素(它通過簡單的刀片('content')包含在主要佈局中)。
P.S.你也必須注意到,如果你在角2中使用了一些http請求,在將它集成到Laravel項目之後,這將爲每個請求添加csrf保護中間件...並且如果在以前工作的請求中有一些新錯誤, 。
由於angular-cli不允許指定index.php
,因此,只需指定index.html
然後在那裏... 並在Laravel路由中添加適當的路由。像這樣的,例如:
Route::any('{path?}', function() {
return File::get(public_path() . '/index.html');
})->where("path", ".+");
順便說一下,它只是對任何未知的路線陷阱...但我認爲你拿個主意。
我與angula2,角CLI和laravel 5.3工作使用它,但我讓他們分開,我建立與laravel的API,並與angular2消耗它它運作良好,爲什麼你不使用相同的方法? –
@CristianSepulveda謝謝你的輸入(y) –
@CristianSepulveda可以請你提供任何網址演示爲strutured你正在使用,我也希望這個,但與laravel想安裝角4 – sunil