首页 > 解决方案 > Apache2 中的 Angularjs 和 Laravel 配置

问题描述

我无法让我的 Laravel/angularjs 应用程序在带有 Apache2 的 Ubuntu 服务器上工作。

我在前端(Angularjs)和后端(Laravel 5)中分离了我的应用程序。

Angularjs /var/www/app-frontend Laravel /var/www/app-api

<VirtualHost *:80>
 ServerName front01-app-dev
 ServerAdmin webmaster@localhost
 DocumentRoot /var/www/app-frontend


  Alias /api /var/www/app-api/public

        <Location /api>
                RewriteEngine On
                RewriteCond %{REQUEST_FILENAME} !-d
                RewriteCond %{REQUEST_FILENAME} !-f
                RewriteRule ^ /api/index.php [L]
        </Location>


        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        <Directory /var/www/app-api/public/>
                Options Indexes FollowSymLinks
                AllowOverride All
                Require all granted
        </Directory>

</VirtualHost>

问题是 Laravel 无法找到路线。在 RouteCollection 中抛出未找到的异常。我通过记录一些数据看到 laravel 正在寻找定义为 /api/etc 的路由(什么是正确的),但请求路径不包含 /api 前缀。

例如,一条路线是

Route::get('/invoices/{inovoiceId}','InvoiceController@show');

在对http://myapp/api/invoices/101进行 GET 操作时

路由定义为 api/invoices/{inovoiceId} 但请求路径是 invoices/101(没有 api 前缀),因此找不到路由。

最后的错误是

(1/1) NotFoundHttpException
in RouteCollection.php (line 184)
at RouteCollection->match(object(Request))
in Router.php (line 546)

对正在发生的事情有任何想法吗?

谢谢!

塞巴斯蒂安

标签: phpangularjslaravelapache2

解决方案


推荐阅读