Внешний js в шаблоне EJS

У меня возникли проблемы с использованием EJS. Я хотел бы использовать файл javascript в своем шаблоне, но я не могу найти правильный способ его реализации, вот мой код:

игра.ejs:

<!DOCTYPE html>
<html>
    <head>
        <title>D-D-D-Duel !!!</title>
        <link rel="stylesheet" type="text/css" href="/view/css/game.css">
        <script type="text/javascript" src="/socket.io/socket.io.js"></script>
        <script type="text/javascript" src= "/actions_client.js"></script>
    </head>

    <body>
        <style type="text/css">
    ...
        </style>
    // My body
    </body>
</html>

Какой бы путь я ни пробовал для своего сценария /actions_client.js, представление не может найти его при загрузке в моем браузере. Возможно, это проблема с node.js, который я также использую, я не знаю, куда поместить свой скрипт, чтобы мое представление нашло его (что и/или где находится папка localhost:8080/?)

С Уважением

РЕДАКТИРОВАТЬ: Что-то, чего я не понимаю, это то, как представление может найти socket.io/socket.io/js, пока я не нахожу его при поиске на своем компьютере?

РЕДАКТИРОВАТЬ: Вот, кстати, мой код в моем файле узла:

var express = require('express'); 
var app = express(), 
server = require('http').createServer(app), 
io = require('socket.io').listen(server), 
fs = require('fs'), 
composants = require('./modules_persos/composants');

person Kahsius    schedule 24.09.2014    source источник
comment
Что касается вашего редактирования: socket.io.js будет в пределах node_packages, возможно, на несколько уровней ниже, под socket.io-client .   -  person Jonathan Lonowski    schedule 24.09.2014
comment
Возможно, это проблема с node.js, который я также использую. Вы определили http.Server в Node для обслуживания статических файлов, таких как actions_client.js? Если да, можете ли вы поделиться этим фрагментом кода? Если нет, можете ли вы предоставить некоторые основы определения сервера - используете ли вы какие-либо библиотеки или фреймворки?   -  person Jonathan Lonowski    schedule 24.09.2014
comment
Связанный: заголовок stackoverflow.com/questions/26013675/   -  person DrakaSAN    schedule 24.09.2014
comment
На самом деле я нашел socket.io.js под socket.io-client, спасибо. На самом деле я ничего не делал со статическими файлами, вот мой код: var express = require('express'); var app = express(), server = require('http').createServer(app), io = require('socket.io').listen(server), fs = require('fs'), composants = require('./modules_persos/composants');   -  person Kahsius    schedule 24.09.2014
comment
@Kahsius: Вы должны отредактировать свой вопрос и поместить туда свой код.   -  person DrakaSAN    schedule 24.09.2014


Ответы (2)


Использовать

app.use(express.static(__dirname + '/ressources'));

чтобы установить папку «localhost: 8080» как ./ressource.

__dirname автоматически генерируется nodejs и содержит путь к папке, в которой хранится ваш скрипт node.js.

Однако /socket.io/socket.io.js будет в __dirname + '/socket.io/socket.io.js'.

person DrakaSAN    schedule 24.09.2014

В экспресс-файле app.js вы просто используете

app.use(express.static(path.join(__dirname, 'public')));

Затем вы можете добавить внешний скрипт в общую папку или онлайн-ссылку на файл js в шаблоне ejs. вроде как

<script   src="https://code.jquery.com/jquery-2.2.4.min.js"   integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44="   crossorigin="anonymous"></script>

Я думаю, что это полезно для вас. Вы также можете увидеть здесь

person user3678907    schedule 07.08.2016