导出/部署Drupal网站/页面到静态?(无缓存)


12

我想知道是否存在可以帮助该主题的模块。我不是在寻找缓存模块(例如Boost或Varnish),而是一种将整个网站(或仅某些页面)导出为静态的方法。我的想法是,我希望我的Web服务器将是一个非常简单轻巧的服务器,并且仅提供静态文件(html / css / js)-生产时没有数据库,服务器上也没有安装php引擎。所有Drupal引擎都将在另一台服务器上,每次添加/编辑/更改节点或视图时都将完成导出,并且将在目录结构中创建一组新的html文件。这些文件稍后将被复制到生产站点,该站点将始终只提供静态文件,没有.htaccess会检查文件是否存在等要求。

是否有用于此的模块,或者可以使用Drupal实现的解决方法?

谢谢

Answers:



2

有一个提供此功能的新Drupal 7模块是Static Generator

静态发生器:

静态模块以html格式生成您网站的完整副本,包括所有js,css,图像和其他资产。然后可以将其转移到没有PHP,MySQL或内存缓存的简单Web服务器上以运行网站。

好处:

  • 性能:面向公众的网站上没有PHP,Mysql等。一切都是静态文件,因此可以快速提供。
  • 安全性:站点的静态版本没有数据库,用户帐户或任何其他形式的用户交互(第三者集成除外),因此更加安全。
  • 可靠性:大多数常见故障点均已消失。PHP,MySQL,内存缓存,清漆等不再是静态站点的一部分。

局限性:

由于网站背后没有数据库或PHP,因此无法使用任何需要它的功能。第三部分库可以填充大多数需要的功能。

一些无法使用的部分是:

  • 无视图过滤器
  • Drupal评论
  • Drupal搜索。
  • 没有Drupal形式。
  • 没有上下文(不是模块)-意味着您不能基于用户更改页面内容,除非您使用JavaScript进行了操作。
  • 没有ajax回调(预生成的GET请求除外)

只要寻呼机通过hook_preprocess_pager,它们就可以工作。


1

GNU wget是一个WWW客户端,可以下载站点页面并将其存储在本地。使用该-r选项以递归方式下载页面(即,链接到当前页面上相同站点上页面的链接)。它还可以将绝对URL转换为相对URL(使用-k选项)。


是的,我知道wget选项,以这种方式,甚至有更好的WWW客户端,称为HTTrack。我想知道Drupal是否有内置功能,可以在每个页面中添加一个按钮,该按钮会将页面导出到静态版本等。谢谢
Maor Barazany

0

我正在寻找类似的东西。我已经搜索了模块并找到了以下选项,但尚未研究它们中的任何一个:

我们想为我们的站点使用S3或其他提供CDN服务的静态文件,因此,类似以下内容的内容可能会有所帮助:

另一个想法是,可能可以利用诸如boost之类的缓存框架,并添加一些内容以在文件缓存文件时将其推送到生产环境。


0

您可以使用模块Wget Static-生成HTML并保存到FTP / Webdav,这正是您想要的。实际上,我还部署了与您上面讨论的相同的体系结构。

您可以选择用于静态HTML生成的内容,也可以使用查询参数来跳过这些内容。然后第二部分是使用WGET应用程序执行静态html生成的地方。该Wget静态模块几乎涵盖了生成静态数据所需的所有选项。

不仅如此,最后除了下载生成的静态html外,您还可以选择将其保存到FTP服务器Webdav Server,后者再次支持“双重身份验证”。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.