以下是【浮舟】分享的內容全文:
shtml技術是一種中大型網站常用的技術,這種技術的優(yōu)點是可以使用比動態(tài)頁面更小的資源消耗實現部分動態(tài)頁的功能。下面先舉兩個應用場景的例子。
場景1:在內容頁右側調用網站最新10篇文章
首先,新建一個自定義頁面,保存在 /inpage/zuixin.html ,頁面內容是調用默認表最新10篇文章的靈動標簽代碼:
[e:loop={0,10,3,0}]<a href="<?=$bqsr['titleurl']?>" target="_blank"><?=$bqr['title']?></a> <br>[/e:loop]然后,增加一個自動刷新任務,根據網站的內容更新情況,設定自動更新間隔時間,比如30分鐘。
最后,在內容頁模板中包含此頁面即可,代碼為:
<!--#include file="/inpage/zuixin.html"-->
如果使用 file 出現報錯提示:
[an error occurred while processing this directive]
這是目錄路徑的問題,嘗試在目錄加上如下一句
<Directory /> Options +Indexes +FollowSymLinks +ExecCGI +INCLUDES +IncludesNOEXEC AllowOverride All Order allow,deny Allow from all Require all granted SSILegacyExprParser on << 這一句加上 </Directory>
如果仍然不能解決,可以把 file 換成:virtual
<!--#include file="/inpage/zuixin.html"-->
變成:
<!--#include virtual="/inpage/zuixin.html"-->
這是相對目錄和絕對目錄之爭
場景2:內容頁分欄目調用隨機文章10篇
思路與以上場景相同,可以先新建多個隨機生成信息的自定義頁面,然后增加自動刷新任務,最后在模板中包含文件。
比較高效的隨機調用方法:
<?php
$randnum=10;
$randids='';
$randdh='';for($i=1;$i<=$randnum;$i++)
{
$randids.=$randdh.rand(1,100000); //1為最小ID,100000為最大ID
$randdh=',';
}?>[e:loop={欄目ID,顯示條數,操作類型,只顯示有標題圖片,"id in ($randids)"}]
模板代碼內容
[/e:loop]可以在不同頁面調用不同的隨機自定義頁面
<!--#include file="/inpage/suiji_<?=$GLOBALS[navclassid]?>.html"-->
還有更加豐富的應用場景,比如調用廣告頁面,或者調用頁頭頁腳,或者取代其它標簽調用實現零標簽的超簡模板等等。
從以上場景可以看到,靈活的應用shtml技術,可以增加網站展現方式,且很大程度上又節(jié)省了系統(tǒng)資源。所以,在準備新建一個網站時,可以考慮使用這種技術。
二、讓Apache支持shtml的方法
讓Apache支持shtml只需要修改配置文件httpd.conf 。
1、查找 include.so ,確保此語句前沒有 #
LoadModule include_module modules/mod_include.so
2、查找 AddOutputFilter ,將此句和上一句前的 # 刪掉,變成
AddType text/html .shtml AddOutputFilter INCLUDES .shtml
如果調用的是html文件,在后面需要加上 .html
AddType text/html .shtml .html .htm AddOutputFilter INCLUDES .shtml .html .htm
3、查找 Options Indexes FollowSymLinks ,在末尾添加Includes ,變成
Options Indexes FollowSymLinks Includes
配置完成,最后重啟Apache即可。
三、讓Nginx支持shtml的方法
打開Nginx配置文件nginx.conf,在http里插入代碼:
ssi on; ssi_silent_errors on; ssi_types text/shtml;
包含文件有兩種命令 include file 與 include virtual ,可以根據情況來選擇。
file和virtual的區(qū)別在于:file屬性是一個相對于當前目錄的文件路徑,即不能是一個絕對路徑以"/"開頭或包含"../"的路徑。virtual屬性可以是一個相對于被提供的文檔的URL ,可以以"/"開頭,但必須與被提供的文檔位于同一服務器上。
最后需要補充的是,如果不準備使用#include,則不要使用shtml,畢竟比起html來,還是要耗費多一些的系統(tǒng)資源。
本站不存儲任何資源文件,敬請周知!
本網站采用 BY-NC-SA 協(xié)議進行授權 轉載請注明原文鏈接:服務器開啟SSI方法 帝國cms如何安裝shtml及帝國cms高效隨機調取實用方法

侵權舉報/版權申訴


