最近接手一個案子,同事使用到SSI也就是include file的方式,必須在本機架設Server才可以使用,在MAC上設Server最簡單的方案是是MAMP,真的好用很簡單操作,免費版就很夠使用,安裝後才發現,MAMP預設include功能是關閉的,上網搜尋一下MAMP SSI,差點被自己笑死,出現的教學文 讓MAMP支援SSI的方法 居然是我寫的🤣,還真的完全沒印象了~~~
原本以為簡單照做就可以,想!不!到!!居然不行阿!!!
再上網爬文一下也有人遇到類似類似的問題,猜想不知道是MAC OS還是MAMP有改了預設的關係吧,最後試了好幾次,終於確認了最新的方式如下,希望也可以鞤助到其它捧油!順帶一提,我是用MAC,WINDOWS下的MAMP應該也是可以。
STEP 1. 下載&安裝
上官網下載主程式,用MAMP PRO也OK,不過SSI是基本功能,MAMP就可以
STEP 2. 修改httpd.conf
打開在conf/apache下的httpd.conf,將原本的517行的
#AddType text/html .shtml
#AddOutputFilter INCLUDES .shtml
拿掉註解改成
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
STEP 3. 新增.htaccess檔
在根目錄也就是htdocs內新增一個純文字檔,內容為
AddType text/html .shtml
AddHandler server-parsed .html
AddHandler server-parsed .shtml
Options Indexes FollowSymLinks Includes
存檔後命名為.htaccess,對,就是一個沒有檔名的htaccess檔的意思,因為是隱藏檔,在VS CODE的LIST內可以看到,在FINDER內不會出現,要顯示出來的話要用Shift+Command+. 的方式顯示隱藏檔
到這邊就可以使用基本的 <!--#include file="*.html" -->
但是!
我這次遇到其它的問題,由於同事的做法是跨資料夾嵌入,簡單說就是在a資料夾內的aa.html內嵌入b資料夾內的bb.html,不知道為什麼一直都會說失敗 [an error occurred while processing this directive],最後再看一下相關討論,寫法與路徑方式要改
要將原本的
<!--#include file="*.html" -->
改成
<!--#include virtual="*.html" -->
並且使用絕對路徑的方式,這樣就正常嚕!
0 意見:
張貼留言