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);
}