MrVimes MrVimes - 7 months ago 14
HTML Question

Server side include no longer seems to be working - "[an error occurred while processing this directive]"

We have a page that has been using a server side include for many years. Recently it stopped working. No changes have been made to the page

<!--#include virtual="..\..\includes\nav.include" -->


Near the bottom of a page called contact.html

The 'nav.include' page simply contains html for a navigation bar. No javascript. No server side scripting. Just html.

Is there some setting somewhere that needs to be set to make SSIs work in the way it is implemented here (including a file with an uncommon extension inside a html file)?

Answer

A solution that I discovered yesterday:

  1. I duplicated and renamed all my pages to .php (retained the original html files just in case!)
  2. I have replaced all the {<#include virtual="folder_name/file_name.ext" -->} with

        <?php include "folder_name/file_name.ext" ; ?> 
    

    with the appropriate number of dots and slashes depending upon where the pages are in my folder hierarchy. ( The {} above is to mark out the code only)

  3. Finally, I renamed the original index.html to some other name so that the index.php is picked up instead of the index.html

This seems to be working out - I am still testing out all the pages and links - a very tedious and time consuming exercise!

INCLUDES SYNTAX:

In a php file use

    <?php include "..//folder_name/file_name.ext" ; ?>

In an html file use

    <!--#include virtual="../folder_name/file_name.ext" -->

EXPERIMENT WITH NUMBER OF "..." AND NUMBER OF "///" IN THE ABOVE SYNTAX TO GET THE CORRECT COMBINATION!!!!

  1. For me, all my includes are small html files in a folder ABC which is directly under the webroot.
  2. For pages which are under sibling folders of ABC i.e. in other folders directly under webroot, "..//" is the number of dots and slashes that work.
  3. For pages which are directly in the webroot (i.e. not in any folder inside webroot), folder_name/file_name.ext without any dots or slashes has worked.
  4. I haven't had the time to check out the number of dots and dashes required for any other level in the hierarchy!

I hope this helps!