【问题标题】:SilverStripe actions on home page return 404主页上的 SilverStripe 操作返回 404
【发布时间】:2014-03-15 06:13:06
【问题描述】:

我像往常一样设置了一个带有操作的页面,但是当我将此页面用作主页时(url 段是“主页”),操作(例如 http://{BaseHref}/someaction)返回 404 . 如何让 SilverStripe 识别主页操作?

class MyPage_Controller extends Page_Controller {

    private static $allowed_actions = array('someaction');

    public function someaction() {
        die('never get here');
    }
}

【问题讨论】:

  • 确保您的主页类型为MyPage

标签: silverstripe


【解决方案1】:

在 SilverStripe 中,页面上的操作路由始终以相同的方式工作:

$baseURL/$URLSegment/Action

这意味着如果您执行/someaction,它不会查找操作,而是会查找 URLSegment 为 someaction 的页面。

因此,如果您想在主页上调用操作,则必须包含 URLSegment。

通常是/home/someaction 但是,我强烈建议使用$Link 方法。

$Link('someaction') // will output /home/someaction
// alternatively you can also do $Link/someaction

另请注意:

  • $allowed_actions 等私有静态变量已被缓存,您必须刷新(访问 /?flush=1)才能让 SilverStripe 重新加载该缓存。
  • $BaseHref 已弃用,请改用 $baseURL$absoluteBaseURL

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-15
    • 1970-01-01
    • 1970-01-01
    • 2013-08-28
    • 1970-01-01
    • 1970-01-01
    • 2020-05-12
    • 2014-11-22
    相关资源
    最近更新 更多