只有根路径在新的 Laravel-8 安装中有效,所有其他都给 404

Posted

技术标签:

【中文标题】只有根路径在新的 Laravel-8 安装中有效,所有其他都给 404【英文标题】:only the root route works in a fresh Laravel-8 installation, all other give 404 【发布时间】:2020-12-28 22:49:41 【问题描述】:

我正在使用 php74 的 Apache24 上运行 Laravel 8.0.1

当我创建一个新项目时,欢迎页面呈现良好。如果我添加另一条路线,我总是会收到 404

% composer create-project --prefer-dist laravel/laravel test123
Installing laravel/laravel (v8.0.1)
  - Installing laravel/laravel (v8.0.1): Loading from cache
...
...
Package manifest generated successfully.
69 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
> @php artisan key:generate --ansi
Application key set successfully.
%
% cd test123
% chmod a+w storage/logs/ storage/framework/sessions/ storage/framework/views/ bootstrap/cache/
% npm install
% npm run dev

Laravel 页面现在可以正常渲染了。看好我:)

但是如果我向routes/web.php 添加一条新路由

Route::get('/about', function () 
  return view('welcome');
);

然后尝试访问 /about 页面,我会得到 404 不幸的是storage/logs/laravel.log是空的(访问/页面时也没有条目)

【问题讨论】:

Laravel 404 还是网络服务器 404?如果是网络服务器的 404 页面,通常是带有“漂亮 url”的错误配置 这是来自网络服务器的 404... 我会检查配置。 Laravel 提供了一个 .htaccess 文件,这个文件还在……我会尽快报告 您可能需要在站点配置中处理AllowOverride 以允许.htaccess 文件执行所需的操作……但我已经很长时间没有使用apache了跨度> 【参考方案1】:

ApacheConfiguration 在 DocumentRoot 上有 AllowOverride None,因此 .htaccess 无法覆盖。将此选项设置为 All(或 .htaccess 文件中提到的选项)就可以了

感谢 lagbox 为我指明正确的方向

【讨论】:

以上是关于只有根路径在新的 Laravel-8 安装中有效,所有其他都给 404的主要内容,如果未能解决你的问题,请参考以下文章

App Engine 上的 Laravel 8:“请提供有效的缓存路径”

laravel 5 只有根路由有效

如何在新的 python 安装中安装 pip

在新的 Dart 项目中看不到 Dart 模板

为 Vue 使用 2 个不同的刀片根模板,以及 Laravel 8 和 Inertia?

基本 JS 文件加载但不渲染或执行 Laravel 8 Bootstrap 5