Laravel版本:5.4.28 api路由无法在localhost上运行

时间:2017-05-14 11:37:14

标签: laravel laravel-5.3 laravel-5.4

我下载了Laravel 5.4.28并创建了一条api路由。在localhost上没有任何作用。我在Windows 8.1上使用XAMPP作为本地开发。

但是在服务器上一切正常。我也注意到一件奇怪的事情。如果我在localhost上创建虚拟主机,它将在localhost上工作。如下。

php artisan serve

这是真的吗?或者我错过了什么?

我的api路线是这样的......

  

http://localhost:1234/adminapi/public/api/v1/authenticateuser

8 个答案:

答案 0 :(得分:1)

如果您的XAMPP在正常PHP页面上正常工作,您是否检查了哪个版本的php XAMPP使用?

是最低要求的版本
PHP >= 5.6.4

Laravel Official Website

XAMPP的PHP框架的默认版本为5.6.30

答案 1 :(得分:1)

我遇到了同样的问题,事实证明我只有PHP版本的问题我只是将php.ini的版本从5.6.3升级到7.0.1新版本的XAMPP同时拥有它们!

答案 2 :(得分:0)

首先,您需要为项目创建虚拟主机,例如yourprojectname.local。并通过此URL测试您的应用。
如果您不创建虚拟主机,那么您需要提供访问laravel api的完整路径,如localhost/yourprojectdirectory/public/adminapi/public/api/v1/authenticateuser 您可以在下面链接中参考创建虚拟主机

http://foundationphp.com/tutorials/apache_vhosts.php

How To Set Up Apache Virtual Hosts on XAMPP (Windows)

答案 3 :(得分:0)

执行php artisan serve并加载该命令返回的URL时,您是否看到了laravels欢迎页面?如果没有,那么你没有正确安装它。 https://laravel.com/docs/5.4

答案 4 :(得分:0)

如果您安装了新的laravel应用程序,则基本api前缀必须等于api

你在api.php中路由

Route::get('test', 'TestController@test');

如果现在运行php artisan serve命令,api将可用 localhost:8000/api/test

希望,我帮助你。

答案 5 :(得分:0)

php artisan serve命令不会创建虚拟主机,它只是PHP Builtin Webserver的快捷方式,PHP开箱即用,所以使用它的重点是启动它尽可能快地测试您的应用程序,您只需要安装PHPComposer并且您的应用程序已启动(当然,如果您不需要任何其他内容)。但是如果你已经安装了Nginx,那就没有意义了,只需使用它。

不明智在制作中使用内置网络服务器。

答案 6 :(得分:0)

config/app.php中有一个名为url的属性。

/*
|--------------------------------------------------------------------------
| Application URL
|--------------------------------------------------------------------------
|
| This URL is used by the console to properly generate URLs when using
| the Artisan command line tool. You should set this to the root of
| your application so that it is used when running Artisan tasks.
|
*/

'url' => env('APP_URL', 'http://localhost'),

默认情况下,它会链接到.env文件的名为APP_URL的属性。 XAMP通常要求您在访问项目之前导航到localhost/project_folder,因此您需要将url属性设置为您正在使用的属性。

其次,API路由通常以/api/为前缀,并且需要X-REQUESTED-WITH: XMLHttpRequest标题。

答案 7 :(得分:0)

我在 Windows 上遇到了同样的问题。按照下面的后续步骤,它对我有用。

首先,在 Apache 中查找您的文件 httpd.conf

找到该部分...

<Directory /var/www/>

改变

AllowOverride None

AllowOverride All

最后重启Apache服务。