当我将我的laravel项目上传到Heroku主机并转到主页时,我发现laravel主页(welcome.blade.php(很好,但当我尝试其中一条路线时,我会得到一个页面,上面写着NOT found现在我已经编辑了我的Procfile,将我重定向到routes文件夹,然后当我尝试我的一个api路由时,会收到一条消息。在这台服务器上找不到请求的URL。
我在本地服务器上尝试了这条路线,它能在上运行
我的Procfile:
web: vendor/bin/heroku-php-apache2 routes/
我的api文件:
Route::post('/users/register' , 'AppHttpControllersAuthController@register') ;
我的.env文件
APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:PecXeFHeAtspGD2s79k4F5HNh2mwgJEC7B1j7/a5cPU=
APP_DEBUG=true
APP_URL=http://localhost
LOG_CHANNEL=stack
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=storeappdb
DB_USERNAME=root
DB_PASSWORD=
我的database.php文件
$DATABASE_URL=parse_url("uaodyzzuglhswm:f3e63e876b4eb6ffde66a69e7cc2942d639d0a98ad8107e5ab262c7219efc92d@ec2-54-164-241-193.compute-1.amazonaws.com:5432/d5jmfh2osra85q");
'default' => env('DB_CONNECTION', 'pgsql'),
'pgsql' => [
'driver' => 'pgsql',
'url' => env('DATABASE_URL'),
'host' => $DATABASE_URL['host'] ,
'port' => $DATABASE_URL['port'] ,
'database' => ltrim($DATABASE_URL['path'] , "/"),
'username' => $DATABASE_URL['user'],
'password' => $DATABASE_URL['pass'],
'charset' => 'utf8',
'prefix' => '',
'prefix_indexes' => true,
'schema' => 'public',
'sslmode' => 'prefer',
],
您的文档根应该是应用程序的public
文件夹。所以你的";Procfile";需要反映:
web: vendor/bin/heroku-php-apache2 public/
文档根设置为public
文件夹,因为应用程序中唯一可访问的部分是public
中的内容(因此名称为"public"(。public
中的index.php
文件是应用程序(Front Loader或Front Controller(的入口点。Web服务器将在内部重写URL以传递给此脚本(public
中的.htaccess
文件就是这样设置的(。