是否可以在 cms 之外创建页面?
例如:
我想使用 jquery .load() 将段加载到当前页面中。
是否可以在主题文件夹中的某处创建一个 html 或 .ss 文件,例如:self-contained-page.html 所以如果我然后访问 www.domain.com/self-contained-paged.html 我将能够访问这个页。
是否可以在 cms 之外创建页面?
例如:
我想使用 jquery .load() 将段加载到当前页面中。
是否可以在主题文件夹中的某处创建一个 html 或 .ss 文件,例如:self-contained-page.html 所以如果我然后访问 www.domain.com/self-contained-paged.html 我将能够访问这个页。
虽然您当然可以提供静态文件,但您也可以“ajaxify”页面的某些部分。不确定这是否是您想要做的,但以防其他人试图做类似的事情。
虽然您可以使用一些花哨的工具,例如pjax或history.js,但您也可以手动完成。我最近使用 SS 2.4 完成了此操作,但 SS 3 应该非常相似:
在您的控制器中,添加一个公共函数,以便您可以通过 /yourpage/load (或任何您想调用的名称)访问它:
public function load(){
return $this->renderWith(array('AjaxLoad'));
}
在您的模板/布局中添加一个文件 AjaxLoad.ss。
.load()
,只需在文件中添加内容即可。<% include PageSnippet %>
ajaxified 页面上同时使用。然后只需在templates/Include/PageSnippet.ss中定义您的内容。您可以在http://www.contentaward.at/content-lab-vienna/608#details看到它的实际效果(单击页面底部的小图像)。希望这可以说清楚。
从您的 silverstripe 安装中的任何位置提供静态 html 文件都没有问题,只需注意始终将文件扩展名添加到您的 url,否则 silverstripe 的 url 路由(使用 mod_rewrite,请参阅 .htaccess 文件)将启动。
另请注意始终使用文件的完整路径,因此如果您将文件放在“themes/mytheme/test.html”中,则 url 将是“ http://www.domain.com/themes/mytheme/test.html”。 html '
您当然可以像使用 css 文件 fe 一样引用主题文件夹中的 html 文件:
www.domain.com/themes/yourtheme/self-contained-paged.html
如果您不介意将其放在主题文件夹中,您也可以将其放入根目录。
或者您可以修改您的 .htaccess 并应用一些 mod_rewrite 或重定向规则以指向主题文件夹。
如果您想使用 .ss 文件,您可能必须使用 CMS 页面。