当我在本地主机上运行项目时,路由可以完美工作,但当我导出到共享主机时,它会根据Route/index.php 中的404配置不断提供{"数据":"找不到资源","代码":404}
我以前主持过一个使用这个框架的项目,到目前为止它仍然有效,但我不知道我在这个特定的项目上做错了什么。我已经交叉检查了以前的项目配置和这个,没有什么区别。
这是我的.env文件的内容
APP_NAME=LEAF_API
APP_ENV=local
APP_KEY=base64:AUAyDriQD1kFdIbwTHlnCm2pYn+qxDBa55SFwB9PUzg=
APP_DOWN=false
APP_DEBUG=true
APP_URL=http://localhost
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=9jafood
DB_USERNAME=root
DB_PASSWORD=
DB_CHARSET=utf8
DB_COLLATION=utf8_unicode_ci
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
PROD_SERVER=hello
PROD_PORT=22
PROD_USER=leaf
APPLICATION_DIR=leaf
APPLICATION_PATH=leaf
这是我的.htaccess文件
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
这是.htaccess文件重写到的索引文件
<?PHP
require_once __DIR__ . '/vendor/autoload.php';
DotenvDotenv::create(__DIR__)->load();
require __DIR__ . "/Config/bootstrap.php";
require __DIR__ . "/Config/functions.php";
LeafView::attach(LeafBlade::class);
$app = new LeafApp(AppConfig());
$app->evadeCors(false);
require __DIR__ . "/App/Routes/index.php";
$app->run();
这是我的index.php文件,位于Route文件夹中
<?php
/**@var LeafApp $app */
$app->set404(function () {
json("Resource not found", 404, true);
});
$app->setErrorHandler(function ($e = null) use($app) {
if ($e) {
if ($app->config("log.enabled")) {
$app->logger()->error($e);
}
}
json("An error occured, our team has been notified", 500, true);
});
$app->setNamespace("AppControllers");
require __DIR__ . "/_route.php";
这是我的route.php
<?php
$app->group("/merchant", function () use ($app) {
$app->post("/", "VendorsController@index");
$app->get("/delivery/{id}", "VendorsController@cost");
$app->get("/category/{id}", "CategoriesController@index");
});
$app->group("/meal", function () use ($app) {
$app->get("/", "MealsController@index");
$app->post("/search", "MealsController@search");
$app->post("/search/location", "MealsController@searchBasedOnLocation");
});
考虑到日期,这可能真的很晚了,但我刚刚注意到您需要一个_route.php
文件,但您的文件名看起来像route.php
。
此外,你也可以在GitHub的叶子论坛上发布你的问题,以便快速解决。