我下载了Laravel 5.4.28并创建了一条api路由。在localhost上没有任何作用。我在Windows 8.1上使用XAMPP作为本地开发。
但是在服务器上一切正常。我也注意到一件奇怪的事情。如果我在localhost上创建虚拟主机,它将在localhost上工作。如下。
php artisan serve
这是真的吗?或者我错过了什么?
我的api路线是这样的......
http://localhost:1234/adminapi/public/api/v1/authenticateuser
答案 0 :(得分:1)
如果您的XAMPP在正常PHP
页面上正常工作,您是否检查了哪个版本的php XAMPP使用?
PHP >= 5.6.4
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开箱即用,所以使用它的重点是启动它尽可能快地测试您的应用程序,您只需要安装PHP
,Composer
并且您的应用程序已启动(当然,如果您不需要任何其他内容)。但是如果你已经安装了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服务。