Symfony新安装后访问测试页面出现404错误求助
Symfony 幸运数字页面404错误排查方案
1. 修正路由配置的语法与路径
你的routes.yaml存在两个问题:
- YAML不允许在配置行后加括号注释,必须删掉
( I also tried without the /CYTest project folder )这段内容,否则会导致路由解析失败。 - 本地开发时,Symfony的根路径就是项目目录本身,不需要在路由
path里添加/CYTest。正确的路由配置应为:
app_lucky_number: path: /lucky/number controller: App\Controller\LuckyController::number
配置完成后,访问http://localhost:8000/lucky/number(对应Symfony内置服务器的默认地址)即可。
2. 确认控制器文件与类的规范
- 确保
CYTest/src/Controller/LuckyController.php的文件名是首字母大写的LuckyController.php,文件内的类名也必须是LuckyController,与文件名严格一致(符合PSR-4自动加载规范)。 - 你的控制器代码在Symfony 6.2中是合规的,无需继承基类,这部分没问题。
3. 清除开发环境缓存
缓存可能导致新路由无法生效,执行以下命令清除缓存:
php bin/console cache:clear --env=dev
4. 验证路由是否成功注册
执行命令查看所有已加载的路由,确认app_lucky_number存在:
php bin/console debug:router
如果看不到该路由,检查routes.yaml的缩进(必须用空格,不能用Tab),排查是否存在其他语法错误。
5. 主机环境的版本兼容问题
你主机使用的Symfony 2.3.42与本地的6.2.7版本差异极大,部署时需注意:
- Symfony 2.3的控制器必须继承
Symfony\Bundle\FrameworkBundle\Controller\Controller基类,你的当前代码在2.3环境下会报错。 - 2.3的路由配置文件是
app/config/routing.yml,路由写法与6.x不同,控制器引用格式也有区别。 - 2.3的Web根目录是项目下的
web文件夹,主机必须将网站根目录指向该文件夹,否则访问路径会出错。
内容的提问来源于stack exchange,提问作者Complete Noob
相关产品推荐
相关产品推荐

