首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Express.io不加载Javascript文件

Express.io不加载Javascript文件
EN

Stack Overflow用户
提问于 2016-04-05 11:21:21
回答 1查看 66关注 0票数 0

我有一个Express.io服务器正在运行,工作正常,但是我的Javascript文件无法正确加载。

我有一个Jade文件,看起来如下:

代码语言:javascript
复制
html
    head
        h1 Test index
    body
        script(src="/socket.io/socket.io.js")
        script(src="/javascripts/inHTML.js")

以及一个类似于以下内容的咖啡记录文件:

代码语言:javascript
复制
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则不会加载。

我的项目如下所示:网站是主目录,其中包含

  • 咖啡记录(文件夹)
  • javascripts (文件夹-有app.js和inHTML.js)
  • 数据(文件夹)
  • node_modules (文件夹- has /socket.io/socket.io.js)
  • Package.json (文件)
  • client.jade (文件)

当我console.log __dirname打印website/javascripts

我也尝试过app.use express.static('../' + __dirname)或类似的东西,也没有成功。

编辑:我试着做Express.io路由示例,但是我想要将Javascript放在一个分离的.js文件中。

EN

回答 1

Stack Overflow用户

发布于 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'));。到静态文件的路径将更符合逻辑,因为它们都有相同的起点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36424959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档