js в html не выполняется в образце приложения Phoenix Framework

Я играю с фениксом. Я полностью скопировал пример чата, но я не получил никаких результатов.

На самом деле, когда я пишу console.log("testing") в моем app.js я замечаю, что моя консоль ничего не регистрирует...

Я получаю сообщение об ошибке, указанное в этой ссылке:

феникс фреймворк - неверный аргумент в новом сокете - windows

Однако эта ошибка, похоже, связана с тем, что Brunch не работает в Windows. Когда я бранч сборки, я могу подтвердить, что app.js имеет console.log("testing") что я включил.

Тем не менее, я не вижу этот консольный журнал, когда посещаю мой localhost:4000.

Почему JS не выполняется?

2 ответа

Решение

Оказывается, в руководстве отсутствует ключевая строка, из-за которой он не работает.

Руководство имеет следующее:

    <script src="//code.jquery.com/jquery-1.11.2.min.js"></script>
    <script src="<%= static_path(@conn, "/js/app.js") %>"></script>
</body>

Но в ней отсутствует строка ниже, которую вы можете поместить над тегом body.

<script>require("web/static/js/app")</script>

Несмотря на то, что Чоуза уже решил этот вопрос, я хотел бы предложить другое, более чистое решение, используя функцию autoRequire в Brunch.io.

Проблема возникает из-за того, что Brunch.io не автоматически запрашивает app.js под Windows. Chowza обошел эту проблему, запросив файл вручную в html. Вы можете опустить руководство по эксплуатации, если измените файл /brunch-config.js следующим образом:

modules: {
  autoRequire: {
    "js/app.js": ["web/static/js/app"]
  }
}

к

modules: {
  autoRequire: {
    "js/app.js": ["web/static/js/app"],
    "js\\app.js": ["web/static/js/app"]
  }
}

Таким образом, app.js автоматически запрашивается, даже если вы работаете в системе на базе Windows.

Я хотел бы отметить, что это решение основано на ссылке, размещенной самим Чоузой, так что вся заслуга в том, что он указал на ссылку.

Другие вопросы по тегам