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.
Я хотел бы отметить, что это решение основано на ссылке, размещенной самим Чоузой, так что вся заслуга в том, что он указал на ссылку.