Bob*_*ack 4 server-side-includes apache-2.2
我想在一堆页面中包含一个标题,如下所示:
header.html:
<html>
<head>
<title>My site</title>
</head>
Run Code Online (Sandbox Code Playgroud)
为了启用特定于页面的标题,我尝试使用我在每个页面中设置的 SSI 变量:
page1.html:
<!--#set var="TITLE" value="first page" -->
<!--#include file="header.html" -->
Run Code Online (Sandbox Code Playgroud)
然后我正在修改header.html以使用该变量:
<title>My site - <!--#echo var="TITLE" --></title>
Run Code Online (Sandbox Code Playgroud)
这工作正常,但当然,它有一个不幸的影响,如果TITLE没有设置,结果是:
<title>My site - (none)</title>
Run Code Online (Sandbox Code Playgroud)
因此,我正在尝试各种尝试,echo根据它是否none存在(例如,<!--#if expr="TITLE != \(none\)" --> ... <!--#endif-->)来有条件地对该变量进行调整……但似乎没有任何效果。
似乎这将是一个非常普遍的要求。有没有人参考工作解决方案?
小智 5
对于 Apache 2.4,表达式已更改:
<!--#if expr="-z v('CONTENT_LANGUAGE')"-->
<!--#set var="CONTENT_LANGUAGE" value="en"-->
<!--#endif-->
Run Code Online (Sandbox Code Playgroud)
好吧,我自己解决了。供其他人参考:
<!--#if expr="${TITLE}!=''" -->
Run Code Online (Sandbox Code Playgroud)
是要使用的正确语法。由于可以配置未定义的文本值,因此您不必检查“(无)”,这是有道理的;我只是没有意识到这是在检查值之后发生的,而不是之前。
| 归档时间: |
|
| 查看次数: |
3434 次 |
| 最近记录: |