0

是否可以在 cms 之外创建页面?

例如:

我想使用 jquery .load() 将段加载到当前页面中。

是否可以在主题文件夹中的某处创建一个 html 或 .ss 文件,例如:self-contained-page.html 所以如果我然后访问 www.domain.com/self-contained-paged.html 我将能够访问这个页。

4

3 回答 3

2

虽然您当然可以提供静态文件,但您也可以“ajaxify”页面的某些部分。不确定这是否是您想要做的,但以防其他人试图做类似的事情。

虽然您可以使用一些花哨的工具,例如pjaxhistory.js,但您也可以手动完成。我最近使用 SS 2.4 完成了此操作,但 SS 3 应该非常相似:

在您的控制器中,添加一个公共函数,以便您可以通过 /yourpage/load (或任何您想调用的名称)访问它:

   public function load(){
       return $this->renderWith(array('AjaxLoad'));
   }

在您的模板/布局中添加一个文件 AjaxLoad.ss。

  • 如果您只想通过 jQuery 提供该页面.load(),只需在文件中添加内容即可。
  • 如果您想在常规页面上使用该内容并希望将其替换为 ajaxified 版本,请在常规页面和<% include PageSnippet %>ajaxified 页面上同时使用。然后只需在templates/Include/PageSnippet.ss中定义您的内容。

您可以在http://www.contentaward.at/content-lab-vienna/608#details看到它的实际效果(单击页面底部的小图像)。希望这可以说清楚。

于 2013-03-05T13:11:33.437 回答
1

从您的 silverstripe 安装中的任何位置提供静态 html 文件都没有问题,只需注意始终将文件扩展名添加到您的 url,否则 silverstripe 的 url 路由(使用 mod_rewrite,请参阅 .htaccess 文件)将启动。

另请注意始终使用文件的完整路径,因此如果您将文件放在“themes/mytheme/test.html”中,则 url 将是“ http://www.domain.com/themes/mytheme/test.html”。 html '

于 2013-03-05T08:34:36.993 回答
0

您当然可以像使用 css 文件 fe 一样引用主题文件夹中的 html 文件:

www.domain.com/themes/yourtheme/self-contained-paged.html

如果您不介意将其放在主题文件夹中,您也可以将其放入根目录。
或者您可以修改您的 .htaccess 并应用一些 mod_rewrite 或重定向规则以指向主题文件夹。

如果您想使用 .ss 文件,您可能必须使用 CMS 页面。

于 2013-03-05T08:36:15.163 回答