【问题标题】:SSI include virtual relative path not workingSSI 包括虚拟相对路径不起作用
【发布时间】:2015-11-03 05:07:04
【问题描述】:

我的网站设置为使用 SSI,并且运行良好。

但是,当我尝试通过 SSI 包含文件时,它不起作用,因为我使用的是相对路径。例如,以下作品

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

但这不(假设文件存在)

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

我是否遗漏了什么,或者有什么方法可以获取有关此错误的更多信息。

【问题讨论】:

    标签: include virtual ssi


    【解决方案1】:

    根据Apache Tutorial

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

    根据Wikipedia

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

    【讨论】:

    • 我收到此错误。让我感到困惑的是 .../assets/reference_editable_forms/js 路径。该文件不存在。 [2015 年 12 月 29 日星期二 13:28:14] [错误] [客户端 ::1] 无法在解析的文件 /Applications/MAMP/htdocs/TO/assets 中包含文件“../../include/head.shtml” /reference_editable_forms/current_used.html [2015 年 12 月 29 日星期二 13:28:14] [错误] [客户端 ::1] 文件不存在:/Applications/MAMP/htdocs/TO/assets/reference_editable_forms/js,引用者:@987654323 @ ...
    • “head.shtml”的完整路径是“/Applications/MAMP/htdocs/TO/include/head.shtml”?
    • 是的。反正在那台机器上。
    【解决方案2】:

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

    字体:http://www.easywebtutorials.com/tutorials/ssi.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多