2014-07-10 98 views
1

我建立一個單一的服務器上的網站,並希望用一些集中的HTML和CSS文件在所有站點,這樣我可以更改單個HTML或CSS,這將影響多個站點。負荷集中的HTML和CSS文件

集中式文件坐在在/ home文件夾,我的服務器上(域文件夾以上)

示例文件夾結構:

/home 
/home/templates 
/home/templates/template1.html 
/home/templates/css/style.css 

例如域(mydomain.com):

/home/mydomain/public_html/index.php 

當我打電話從mydomain的文件夾中的index.php的template1.html文件,它加載HTML文件就OK了,但由於template1.html引用CSS/style.css中的樣式文件,它試圖加載文件,就好像它是mydomain.com/css/style.css而不是從/ home/templates文件夾中加載。

我明白,這是做什麼它應該做的事情,但沒有辦法,我可以使用htaccess的規則或東西,它重定向回到/ home/Templates文件夾的方法嗎?或者有沒有一種方法可以從html文件中正確引用CSS文件的位置?

+0

這可以幫助爲絕對路徑,將任何模板工作:http://php.net /manual/fr/reserved.variables.server.php – Sugar

回答

0

我參加了一個稍微不同的方法來此得到它的工作。

我添加了一行到我的htaccess的重定向的style.css到style.php:

RewriteRule ^style\.css$ style.php [L] 

的style.php然後抓起,從在配置PHP文件中的變量模板的名稱 - 「template3 .html「並將其轉換爲」template3.css「(使用str_replace)。

然後,它包括 「/home/thin/templates/template3.css」 文件。

的style.php還包含以下行來強制內容被視爲CSS:

header("Content-type: text/css; charset: UTF-8"); 
1

有這樣的代碼在你的DOCUMENT_ROOT/.htaccess文件:

RewriteEngine On 

RewriteRule ^((?:css|js|images)/.+)$ /home/templates/$1 [L,NC]