EJS模板中的外部js

时间:2014-09-24 14:27:35

标签: javascript node.js templates ejs

我在使用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');

2 个答案:

答案 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