Javascript не будет загружаться в мой сайт, обработанный Handlebars - PullRequest
0 голосов
/ 25 апреля 2020

Итак, у меня есть сайт, который отображается с помощью Handlebars и создается с использованием Express, MongoDB и Mon goose. Рендеринг сайта и мои данные из БД будут заполнены, но я не могу запустить файл основного приложения. js. У меня это было в папке publi c, которая хранится в файле моего сервера в качестве местоположения stati c, но, хотя он регистрируется на вкладке сети, он фактически не запускает ни одну из своих логи c. Я перепробовал кучу вещей, и буквально ноль изменений.

Основной вызов сценария в основном находится в моем файле шаблона, но я пробовал несколько вариантов, все с одинаковым результатом. Я прочитал несколько документов на руле и тому подобное, и у меня даже были другие проекты, которые я делал, где файл js загружается нормально. Я понятия не имею, чего не хватает, и у меня было несколько человек, которые пытались мне помочь и быть в тупике. Помогите переполнению стека, вы моя единственная надежда !!!

К вашему сведению, здесь моя страница макета для hbs и мое приложение. Он находится в общих папках / ресурсах. Я в недоумении.

$(document).ready(function() {
    $(document).on("click", ".scrape-new", function(request, response) {
        console.log
        $.ajax({
            method: "GET",
            url: "/scrape"
        })
        .then(function(result) {
            response.send("data scraped");
            response.redirect("/");
        })
        .catch(function(error) {
            throw error;
        })
    });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"
        integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n"
        crossorigin="anonymous"></script>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"
        integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
    <link rel="stylesheet" type="text/css" href="/assets/css/style.css">
    <link href="https://fonts.googleapis.com/css2?family=Playfair+Display:wght@900&display=swap" rel="stylesheet">
    <link rel="icon" type="image/svg" href="/assets/images/newspaper-solid.svg">
    <title>Onion Scraper</title>
</head>

<body>
    {{{body}}}
    <script src="/assets/app.js" type="javascript"></script>
</body>

</html>

1 Ответ

1 голос
/ 25 апреля 2020

Хорошо, значит другой человек нашел ответ. Это было очень странно. У меня есть возможность сесть и посмотреть. Если вы удалите атрибут «type» из тега script, все загрузится нормально. Я видел это раньше, но я не знаю, что вызывает это. Я собираюсь исследовать и посмотреть, смогу ли я дать некоторые идеи. 10:13 Ага! Оказывается, если ваш javascript файл снабжен заголовком любого типа, кроме javascript, при указании типа браузер не сможет его загрузить. Express очевидно загружает JS файлы как тип «script», что означает, что указанный тип (javascript) не совпадает. Старый код: <script src="/assets/app.js" type="javascript"></script> по этому: <script src="/assets/app.js"></script> That suddenly fixed it

...