我在使用EJS时遇到了一些麻烦。我想在我的模板中使用javascript文件,但我找不到实现它的正确方法,到目前为止我的代码是:
game.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');
答案 0 :(得分:1)
使用
app.use(express.static(__dirname + '/ressources'));
设置&#39; localhost:8080&#39;文件夹为./ressource。
__ dirname由nodejs自动生成,并包含存放在node.js脚本中的文件夹的文件路径。
但是,/socket.io/socket.io.js
将位于__dirname + '/socket.io/socket.io.js'
。
答案 1 :(得分:1)
在express app.js文件中,您只需使用
app.use(express.static(path.join(__dirname, 'public')));
然后您可以在ejs模板中的公共文件夹或js文件的在线链接中添加外部脚本。像是
<script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
我认为这对你有帮助。 您还可以看到Here