Проверка наличия веб-страницы в домене, в противном случае загрузите другую страницу - PullRequest
0 голосов
/ 03 февраля 2020

Не используя серверный язык, я пытаюсь использовать JavaScript, чтобы проверить, существует ли веб-страница (в том же домене, нет междоменного домена): если это так, загрузите ее; если нет, загрузите еще один. Однако приведенный ниже код не работает, по какой-то причине кажется, что он никогда не вводит второй случай: вместо этого он всегда пытается загрузить страницу (обычно photo_202023. html), независимо от того, существует она или нет.

Стоит отметить (спасибо комментатору, который заставил меня понять это): URL-адрес несуществующей веб-страницы загружается в адресную строку браузера, но отображаемая страница является домашней страницей. Это обычное поведение, когда я пытаюсь загрузить несуществующую веб-страницу. Поэтому вполне может быть, что веб-хост (Firebase) в этом случае меняет поведение, даже если приведенный ниже код представляет собой весь код, который я использую.

Спасибо за вашу помощь!

<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>

<script type="text/javascript">

var today = new Date();
var displayDay = today.getDate();
var displayMonth = today.getMonth();
var displayYear = today.getFullYear();

var checkFor = "photos/photo_" + displayYear + displayMonth + displayDay + ".html";

$.ajax({
    type: 'HEAD',
    url: checkFor,
success: function() {
        // page exists
    location.href=checkFor;
},
error: function() {
        // page does not exist
    location.href="photosredirect.html";
}
});

</script>

1 Ответ

1 голос
/ 04 февраля 2020

Хорошо, так что спасибо всем, кто прокомментировал, как они привели меня к решению: проблема заключалась в конфигурации веб-хостинга. Я размещаю код на Firebase и firebase. json настраивал, что произойдет в случае, если страница не найдена, то есть перенаправляется на индекс. html. Я удалил это переписывание, и код работает как задумано.

Я действительно хотел попытаться быть более тонким, чтобы сохранить это поведение по умолчанию для всех страниц, не входящих в / photos / or photos. html (который содержит код, упомянутый выше), но я все еще должен делать что-то не так - но это для другой топи c! Еще раз спасибо всем комментаторам.

"rewrites": [
{
// Excludes specified pathways from rewrites
"source": "!/photos/**",
"destination": "/index.html"
}
    , {
// Excludes specified pathways from rewrites
"source": "!/photos.html",
"destination": "/index.html"
}
,
      {
// If it makes it here, it didn't match any previous routing
// Serves index.html for requests to files or directories that do not exist
"source": "**",
"destination": "/index.html"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...