我已设置website了。如果我尝试点击register之类的链接,我会收到以下错误:
404 | Not Found | sfError404Exception
Empty module and/or action after parsing the URL
"/trevelyan.alumni/register" (/).
使用
生成链接<?php
print link_to( 'Register', 'register/index' );
?>
我在apps / frontend / modules / register中有一个'register'模块。
我是Symfony的新手,感谢任何帮助!
的routing.yml:
# default rules
homepage:
url: /
param: { module: home, action: index }
default_index:
url: /:module
param: { action: index }
default:
url: /trevelyan.alumni/:module/:action/*
答案 0 :(得分:1)
我认为您的问题是您正在从“子网站”运行symfony,而不是直接从“根”网址(http://www.dur.ac.uk/trevelyan.alumni而不是http://www.dur.ac.uk/)运行。我认为最简单的解决方案是将trevelyan.alumni
添加到routing.yml中所有网址的前面。
例如,对于default
路线,而不是
default:
url: /:module/:action/*
使用
default:
url: /trevelyan.alumni/:module/:action/*
答案 1 :(得分:1)
阅读Steven Oxley,但也试试这个:
检查你的模块目录中是否至少有一个具有正确名称的动作类(symfony区分大小写,这非常棘手)。
如果这样做,请检查默认操作(在模块配置文件中)是模块中的操作类之一。
每次更改配置文件时都不要忘记清除缓存。
答案 2 :(得分:1)
我设法通过编辑symfony控制器文件来修复此问题,以便使用$ _SERVER变量从中挑选模块(如果找不到)。
答案 3 :(得分:1)
在 routing.yml 文件末尾
:homepage:
url:
param: { module: main, action: index }
default:
url: /:module/:action/*
并且不要忘记之后清除缓存;)
答案 4 :(得分:0)
请注意,要使路由更改生效,您必须运行symfony clear cache:
./symfony clear-cache
答案 5 :(得分:0)
由于默认路由规则,您应该从匹配的网址中删除一个点
将您的默认路线更改为:
default:
url: /trevelyan_alumni/:module/:action/*
这应该有效。请注意,点(。)替换为_
答案 6 :(得分:0)
我已经从symfony 1.2升级到1.4,并且遇到了这个问题。在一天结束时,基本上配置文件已经变得足够多,以至于路由以某种方式破坏了。浏览应用程序配置文件并将它们与lib / vendor / symfony / lib / config / config中的“新应用程序”模板进行比较/更新(或者您保留symfony的位置)修复了此问题。