1

在 silverstripe 项目中,我正在通过 ajax 加载整个页面。因此,我在 Page-Contoller 中添加了以下功能:

public function ajax(){
    return $this->renderWith('MyTemplate');
}

到目前为止,这工作正常,当我浏览到 mysite.com/mypage/ajax 时,我得到了我想要的页面。唯一的问题是模板“MyTemplate”中包含的 JS/CSS 文件:

<% require javascript(my.js) %>
<% require css(my.css) %>

css/js 没有出现在源代码中——不知何故,它不包括在内,尽管它是模板“MyTemplate”的一部分。

那么有没有办法用 silverstripe 方法以一种很酷的方式添加 css/js?

我试过这个:

public function ajax(){
    Requirements::css("my.js");
    return $this->renderWith('ProjectPage');
}

但到目前为止还没有成功。非常感谢,弗洛里安

4

1 回答 1

1

您需要将以下 javascript 文件加载到您的站点中,具体取决于 silverstripe 版本:

SS3 - /framework/javascript/jquery-ondemand/jquery.ondemand.js

或者

SS2.4-/蓝宝石/javascript/core/jquery.ondemand.js

据我所理解; 当您发出 ajax 请求时,任何新的 css 或 javascript 要求都会添加到请求标头中。然后,当请求成功时,ondemand.js 会为您将这些脚本拉入文档中(如果它们尚不存在)。

于 2012-09-05T06:19:54.790 回答