我运行了一个Express.io服务器,工作正常,但我的Javascript文件无法正常加载。
我有一个Jade文件,如下所示:
html
head
h1 Test index
body
script(src="/socket.io/socket.io.js")
script(src="/javascripts/inHTML.js")
和一个看起来像这样的Coffescript文件:
express = require('express.io')
app = express()
r = require('rethinkdb')
app.get '/', (req, res) ->
res.render '../../client.jade'
Jade文件确实加载并且script(src="/socket.io/socket.io.js")
也正常加载,但是当我使用Chrome检查网站时,第二个<script>
标记会返回GET
错误。我尝试了多种途径使其工作,遗憾的是没有成功。我没有看到script(src="/socket.io/socket.io.js")
加载的原因,而我的其他script
没有。
我的项目如下所示:网站是主目录,其中包含
当我console.log __dirname
打印website/javascripts
我也试过app.use express.static('../' + __dirname)
或类似的东西,也没有成功。
编辑:
我尝试执行Express.io Routing Example,但我想在单独的.js
文件中使用Javascript。
答案 0 :(得分:0)
如果我正确理解你,你将javascript inHTML.js放在与执行脚本app.js相同的目录中。
__dirname
是当前正在执行的脚本所在目录的名称。这就是控制台在您记录website/javascripts
时记录__dirname
的原因。
基本上,这意味着你会写app.use(express.static(__dirname + '/'))
和script(src="inHTML.js")
。或许你可以写app.use(express.static('../'));
和script(src="javascripts/inHTML.js")
最合乎逻辑的事情,以及我建议的另一方面,放置你的执行脚本,再次我假设是app.js,在根目录中放置你想要服务的所有文件静态在同一子文件夹中。这样你可以说明app.use(express.static(__dirname + '/nameOfSubfolder'));
。并且静态文件的路径将更符合逻辑,因为它们都具有相同的起点。