2014-09-24 93 views
2

我在使用EJS時遇到了一些麻煩。我想用一個JavaScript文件在我的模板,但我無法找到實現它的正確的方式,這是我到目前爲止的代碼:EJS模板中的外部js

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> 

無論路徑I嘗試我的腳本/actions_client.js,視圖在我的瀏覽器中加載時找不到它。這可能是node.js的一個問題,我也使用,我不知道在哪裏放我的腳本,以使我的視圖找到它(什麼和/或文件夾localhost:8080 /?)

Regards

編輯:我不明白的東西是如何查看找到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

關於您的編輯:'socket.io.js'將位於'node_packages'內,可能位於[socket.io-client']下的幾個級別(https:// github。 COM/Automattic的/ socket.io客戶端)。 – 2014-09-24 14:39:14

+0

「*這可能是node.js的一個問題我也使用*」你是否已經在Node中定義了'http.Server'來提供像'actions_client.js'這樣的靜態文件?如果是這樣,你能分享這段代碼嗎?如果沒有,你能否提供一些關於服務器定義的基礎知識 - 你是使用任何庫還是框架? – 2014-09-24 14:41:13

+0

相關:http://stackoverflow.com/questions/26013675/serving-a-static-html-page-containing-an-image-using-node-js-express?noredirect=1#comment40744871_26013675 ​​ – DrakaSAN 2014-09-24 14:43:35

回答

0

使用

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

設置 '本地主機:8080' 文件夾./ressource。

__dirname由nodejs自動生成,並且包含文件路徑以存儲您的node.js腳本所在的文件夾。

但是,/socket.io/socket.io.js將在__dirname + '/socket.io/socket.io.js'

+0

謝謝,它的作品:D! – Kahsius 2014-09-24 15:02:51

0

在快遞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