我有一个Express.io服务器正在运行,工作正常,但是我的Javascript文件无法正确加载。
我有一个Jade文件,看起来如下:
html
head
h1 Test index
body
script(src="/socket.io/socket.io.js")
script(src="/javascripts/inHTML.js")以及一个类似于以下内容的咖啡记录文件:
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路由示例,但是我想要将Javascript放在一个分离的.js文件中。
发布于 2016-04-05 15:40:01
如果我对您的理解是正确的,那么您将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'));。到静态文件的路径将更符合逻辑,因为它们都有相同的起点。
https://stackoverflow.com/questions/36424959
复制相似问题