我们有一个多年来一直使用服务器端包含的页面。最近它停止工作了。没有对页面进行任何更改
<!--#include virtual="..\..\includes\nav.include" -->
在名为contact.html的页面底部附近
'nav.include' 页面只包含导航栏的 html。没有 JavaScript。没有服务器端脚本。只是html。
是否有一些设置需要设置以使 SSI 以这里实现的方式工作(包括在 html 文件中具有不常见扩展名的文件)?
你在使用 GoDaddy 吗?他们对我的网站做了同样的事情,我在他们的论坛上发现有人说使用包含文件而不是虚拟包含。
我昨天发现的一个解决方案:
我已将所有 {<#include virtual="folder_name/file_name.ext" -->} 替换为
<?php include "folder_name/file_name.ext" ; ?>
根据页面在我的文件夹层次结构中的位置,使用适当数量的点和斜线。(上面的 {} 仅用于标记代码)
这似乎正在解决 - 我仍在测试所有页面和链接 - 一个非常乏味和耗时的练习!
包括语法:
在 php 文件中使用
<?php include "..//folder_name/file_name.ext" ; ?>
在 html 文件中使用
<!--#include virtual="../folder_name/file_name.ext" -->
在上述语法中使用“...”的数量和“///”的数量进行实验以获得正确的组合!!!!
我希望这有帮助!
刚切换到 Godaddy 服务器,我的 SSI 停止工作。我用以下内容制作了一个 .txt 文件:
AddHandler 服务器解析的 .html
我将它上传到公共 html 文件夹,然后将其重命名为 .htaccess,一切都开始工作了。
我有太多文件无法将所有扩展转换为 PHP,所以如果可能的话,我必须找到另一个答案。
对我来说,有一段时间,交换include virtual
到include file
似乎有帮助,但几天后它又坏了。我猜 GoDaddy 并没有完成对 SSI 配置的胡闹。o_O
截至今晚,解决方案是将所有相对路径转换为关于站点根目录的绝对规范。例如,我必须转换:
<!--#include virtual="..\..\includes\nav.html" -->
到:
<!--#include virtual="\includes\nav.html" -->
使用这种方法,我能够将 HTML 文件包含在其他 HTML 文件中。
我在我的一个混合了绝对和相对路径规范的页面上发现了这一点。
高温高压
我经常在我的 GoDaddy 托管网站上看到这个问题。我必须进入服务器配置页面,禁用 SSI,保存设置,然后重新启用 SSI 并选中“在 .HTM 和 .HTML 文件上使用 SSI),然后它又开始工作了。
问题出在 GoDaddy 这边。出于某种原因,它忘记了它需要解析文件中的 SSI,直到您关闭并打开该选项。他们的第 2 层支持仅建议在 Include 命令上使用 Virtual 而不是 File……这很荒谬,因为这不仅不会改变任何事情,而且 SSI 在大多数情况下都可以正常工作……直到它没有吨。
当某些页面显示时,我还将旧的 .html 页面更新为 .php 并替换所有页面上的一些 php include 语句[处理此指令时发生错误]。
显示错误的页面还引用了一个旧的 .ssi 文件,该文件甚至不在它指向的目录中。我删除了那些页面中不存在的 .ssi 文件的旧包含代码,从而修复了错误。
当您的代码中有这样的 html 文档时,会发生此错误
<!--#My awesome documentatacion-->
修复它删除#,像这样
<!-- My awesome documentatacion-->