2015-11-03 93 views
1

我的网站设置为使用SSI,并且工作得很好。SSI包含虚拟相对路径不起作用

但是,当我尝试通过SSI包含文件时,它将无法工作,因为我使用相对路径。例如,下面的工作

<html> 
    <head> 
     <!--#include virtual="include/head.shtml" --> 
    </head> 
</html> 

但这并不(假设存在的文件)

<html> 
    <head> 
     <!--#include virtual="../include/head.shtml" --> 
    </head> 
</html> 

有我丢失的东西,或者是有办法,我可以得到有关的更多信息这个错误。

回答

2

根据Apache Tutorial

include元素可以确定包括哪些文件,无论是 file属性或属性virtualfile属性是相对于当前目录的文件 路径,。这意味着它不能是 绝对文件路径(以/开头),也不能包含../作为 部分路径。 virtual属性可能更有用,并且 应指定与所服务文档相关的URL。它可以 以/开头,但必须与 所服务的文件在同一台服务器上。

根据Wikipedia

virtual”指定相对于域根目标,而“file”相对于当前文件的目录的路径指定。

+0

我得到这个错误。让我困惑的是....../assets/reference_editable_forms/js路径。该文件不存在。 [2015年12月29日13:28:14] [error] [client :: 1]无法在解析文件/ Applications/MAMP/htdocs/TO中包含文件“../../include/head.shtml” /assets/reference_editable_forms/current_employed.html [2015年12月29日13:28:14] [错误] [client :: 1]文件不存在:/ Applications/MAMP/htdocs/TO/assets/reference_editable_forms/js, referer:http:// localhost:9988/TO/assets/reference_editable_forms/current_employed.html?objectId = LAytov5IZr&applicant_email = myemail%40gmail.com ... –

+0

“head.shtml”的完整路径是“/ Applications/MAMP/htdocs /TO/include/head.shtml“? – Valentin

+0

是的。无论如何,在那台机器上。 –

0

服务器端包含当一个文件是从Web服务器,即当您查看从URL的网页,在浏览器中调用它们加载时才会处理(如http:// ....) 。在桌面上查看您的网页时,您不会看到这些内容。

字体: