pathlocationstrategy angular 2 和 laravel 和 .htaccess
pathlocationstrategy angular 2 and laravel and .htaccess
我在为 laravel 和 angular 2 设置 .htaccess 时遇到问题。
当我刷新浏览器时 window 我得到一个 404 页面并尽量避免 html5 hashbang 策略。
我使用来自 Angular 2 和 Laravel 的路由。 Laravel 路由用于检索模板(angular 中的 templateUrl)。
我从 https://github.com/sanex3339/laravel-5-angular-2-example
开始
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ / [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
我找到了另一种解决方法:
App\Http\routes.php
在所有 Angular 路由前加上“/api”
// Angular 2 base route resolving
Route::get('/', [
'uses' => 'JSControllers\AngularRoutesController@index',
'as' => 'home'
]);
Route::group(array('prefix' => 'api'), function()
{
// Angular 2 base `/edit` route resolving
Route::get('/edit', 'JSControllers\AngularRoutesController@index');
// Angular 2 templates route
Route::get('/templates/{template}', 'JSControllers\AngularTemplatesController@index');
// API route
Route::post('/api/upload-file', 'JSControllers\UploadController@uploadFile');
// Angular 2 templates route
Route::get('/blogdata', 'JSControllers\AngularDataController@blog');
});
App\Exceptions\Handler.php
public function render($request, Exception $e)
{
if($e instanceof NotFoundHttpException)
{
return Response::view('backend.content');
}
return parent::render($request, $e);
}
我在为 laravel 和 angular 2 设置 .htaccess 时遇到问题。 当我刷新浏览器时 window 我得到一个 404 页面并尽量避免 html5 hashbang 策略。 我使用来自 Angular 2 和 Laravel 的路由。 Laravel 路由用于检索模板(angular 中的 templateUrl)。 我从 https://github.com/sanex3339/laravel-5-angular-2-example
开始<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ / [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
我找到了另一种解决方法:
App\Http\routes.php
在所有 Angular 路由前加上“/api”
// Angular 2 base route resolving
Route::get('/', [
'uses' => 'JSControllers\AngularRoutesController@index',
'as' => 'home'
]);
Route::group(array('prefix' => 'api'), function()
{
// Angular 2 base `/edit` route resolving
Route::get('/edit', 'JSControllers\AngularRoutesController@index');
// Angular 2 templates route
Route::get('/templates/{template}', 'JSControllers\AngularTemplatesController@index');
// API route
Route::post('/api/upload-file', 'JSControllers\UploadController@uploadFile');
// Angular 2 templates route
Route::get('/blogdata', 'JSControllers\AngularDataController@blog');
});
App\Exceptions\Handler.php
public function render($request, Exception $e)
{
if($e instanceof NotFoundHttpException)
{
return Response::view('backend.content');
}
return parent::render($request, $e);
}