gpt4 book ai didi

php - 使用服务器端语言进行开发但部署到静态 HTML 的最佳方式

转载 作者:搜寻专家 更新时间:2023-10-31 21:19:10 25 4
gpt4 key购买 nike

我们有一个客户,我们为他建立了很多基于模板的网站。理想情况下,我们会使用类似 kohana ( http://www.kohanaphp.com/ ) 的东西来处理模板并使站点范围内的更改变得轻而易举。

不幸的是,我们的客户端不能(也不会)托管任何服务器端代码(而且在您询问之前,这不会改变并且我们自己托管文件不是一种选择),因此部署到它们的任何文件都必须是 HTML、Javascript、仅限 CSS、图像和 Flash。

有没有一种好的方法可以在像 kohana 这样的框架环境中进行开发,使网站易于管理,但又能够部署或导出网站的纯 HTML 版本(网站没有动态方面,例如搜索需要服务器端语言,不使用数据库)?

我想这类似于抓取网站,但我想要更可靠的东西,因为一些页面 Assets 是使用 javascript 动态加载的。

谢谢

最佳答案

我使用 Template Toolkit (Perl) 并有一个从模板生成静态文件的简单脚本。这非常适合您所处的情况(通用导航等)。

它带有一个 ttree 命令,该命令将处理目录树并将结果放入另一个目录树中。

这是我使用的 tt.rc 文件:

# ignore these files (regular expressions)
ignore = \.svn
ignore = ^#
ignore = ~$
ignore = .DS_Store
ignore = \.tt$

# if these template files change, reprocess everything
depend *=tpl/wrapper,tpl/defaults,style/default.html

# just copy these files, don't process as templates
copy = \.(gif|png|pdf|jpg)$

# verbose output
verbose

# recurse into subdirectories
recurse

# setup some defaults from tpl/defaults
pre_process = tpl/defaults

# process this file instead of the real file (see below how this is used)
process = tpl/wrapper

# process files from src/, output to html/
# extra templates in lib/ (tpl/wrapper for example).
src = src
dest = html
lib = lib

一些特殊文件,tpl/defaults

[%-  page = {
title = template.title,
style = template.style or 'default.html'
};

base = INCLUDE tpl/base_uri;

# don't include any whitespace from here...
RETURN;
-%]

tpl/wrapper

[%- content = PROCESS $template;    
IF !template.name.search('.html') OR page.style == 'none';
content;
ELSE;
default_style_template = "style/" _ page.style;
PROCESS $default_style_template;
END;
%]

这将处理真正的模板;将结果放入 content 变量中,然后处理 style 模板(使用 tpl/defaults 中的 page.style 设置>;默认为 defaults.html)。

lib/style/default.html 样式文件只需要有

[% content %]

某处包含真实模板;在此之前和之后,您可以使用标准的页脚和页眉。

您可以在 tt2.org 阅读有关模板工具包的更多信息.

另一种选择是在递归模式下使用 wget(或类似的)来“镜像”PHP 在开发服务器上生成的页面;但我不建议这样做。

关于php - 使用服务器端语言进行开发但部署到静态 HTML 的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1151984/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com