Как включить в SSI переменное имя файла

Я недавно обнаружил SSI и не совсем понимаю, как это работает. Я написал этот код javascript, показанный ниже, который должен превратить конец ссылки в имя текстового файла (что отлично работает). Затем все символы, необходимые для экранирования, экранируются, код ниже.

var path = window.location.pathname;
var page = path.split("/").pop();
var res = path.replace(".html", ".txt");
var res = res.replace("/Iliad/", "");
console.log(res);
element = document.getElementById('book');
element.innerHTML = "\<\!\-\-\#include virtual="+res+" \-\-\>";

Согласно консоли (элемент проверки), <!--#include virtual=1.txt --> совершенно правильно добавляется к innerHTML контейнера html div, но он не включает файл .txt, на который он ссылается. Я искал в Интернете и не могу найти решение этой проблемы. Я что-то делаю не так? Если да, то как мне это сделать. Спасибо!

Проверить элемент моего сайта


person R2bEEaton    schedule 28.11.2017    source источник


Ответы (2)


Включения на стороне сервера обрабатываются на сервере (отсюда и название), если сервер настроен правильно.

Изменение данных в браузере (спустя долгое время после того, как они покинули сервер) не может инициировать обработку SSI на сервере.


Посмотрите на Ajax и манипуляции с DOM.

person Quentin    schedule 28.11.2017
comment
Позволят ли они мне включать переменные имена файлов? - person R2bEEaton; 28.11.2017
comment
@R2bEEaton_ — Не как таковой. Они позволят вам использовать переменные URL-адреса. - person Quentin; 28.11.2017
comment
Что это обозначает? Вы говорите, что нет надежды включить эти файлы на основе URL-адреса? - person R2bEEaton; 28.11.2017
comment
Неважно, я нашел решение и ответил на свой вопрос. Тем не менее, я соглашусь с этим, потому что он привел меня к решению. - person R2bEEaton; 28.11.2017

Спасибо @Quentin за быстрый ответ. После того, как мне сказали, что именно должен делать SSI, я стал искать другое решение.

Это сработало для меня! Я изменил код следующим образом...

var request = new XMLHttpRequest();
request.open('GET', res, false);
request.send();
var textfileContent = request.responseText;
element = document.getElementById('book');
element.innerHTML = textfileContent;

Надеюсь, это поможет кому-то еще!

person R2bEEaton    schedule 28.11.2017
comment
XMLHttpRequest/GET работает аналогично SSI, но браузер посетителя сделает это, я почти на вашей позиции (см. мой вопрос ), так как мне нужно изменить содержимое внутренней страницы в соответствии с предварительно заданными (со стороны сервера) значениями, если у вас есть идея получше, дайте мне подсказку. - person Salem; 03.02.2019