【问题标题】:EJS and jquery not loading javascript referenceEJS 和 jquery 不加载 javascript 参考
【发布时间】:2012-07-13 22:55:50
【问题描述】:

这让我发疯了。

我有一个带有 express 的节点应用程序。它提供一个名为 index.ejs 的文件。

我想做的就是在这个页面上导入一个 javascript 文件(类似于 jquery)。但它不会把它拉起来,我要疯了(因为这应该很简单)。

在服务器端,我将这段代码放在一个名为 app.js 的文件中:

var express = require('express');
var app = express.createServer();
var hostName = (process.env.VCAP_APP_HOST || 'localhost');
app.listen( process.env.VCAP_APP_PORT ||  8000);
app.use(express.static(__dirname +  '/public/javascript/'));


//Create the view
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.set('view options', { layout: false });
app.get('/', function(req, res){
    res.render('index.ejs', {
              item : "document.write('Hello World');"
    });
});

在 ejs 文件中,我有这个:

<html>
        <script>
        <%= item %>
    </script>

<a href="">Link</a>
<script type="text/javascript" src="/javascript/jquery.js"></script>
</html>

我可以在控制台中看到脚本未加载(它显示错误)。但是对于我的一生,我无法弄清楚为什么。

【问题讨论】:

  • 它显示什么错误?如果您查看源代码,HTML 会是什么样子?
  • GET localhost:8000/javascript/jquery.js 404(未找到),查看源代码几乎可以显示您的期望。它显示了我的脚本 div 和很多。
  • 我才意识到我搞砸了标题。 Gahh,现在已经太晚了。
  • 我认为这是因为客户端没有获取该 javascript 页面,这就是它出现 404 的原因。但我以前曾以这种方式引用过脚本。为什么现在会生气?

标签: javascript jquery node.js ejs


【解决方案1】:

您需要添加一个静态服务器来为您在“/”下的其他文件提供服务。目前,您的服务器只是响应发送到“/”(和视图)的请求。

app.get 之前将此行添加到您的快速设置中:

// DOCUMENT_ROOT should point to the directory that contains your javascript directory.
app.use(express.static(DOCUMENT_ROOT));

【讨论】:

  • 您确定将静态服务器指向正确的目录吗?你能用你当前的代码和一些目录结构信息更新这个问题吗?
  • 您的静态文件服务器指向__dirname + '/public/javascript/',而您的HTML 期望服务器位于/,因为它正在请求/javascript/jquery.js。将您的 HTML 更改为指向 /jquery.js 或将您的静态文件服务器更改为 __dirname + '/public/'
  • 不错!!!就是这样!这让我变得更棒了,因为我离跳上飞机只有几分钟的路程,并且在晚上剩下的时间里失去了互联网。谢谢!!!
  • 不客气。安全飞行,睡个好觉。看起来你已经赢得了它:-)
【解决方案2】:

当您的客户请求/javascript/jquery.js 时,您的服务器将寻找/public/javascript/javascript/jquery.js,我怀疑它会找到它。假设jquery.js 实际上位于your_app/public/javascript 中,将express.static() 的路径名设置为__dirname + '/public' 应该可以。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-27
    • 1970-01-01
    • 1970-01-01
    • 2010-09-15
    • 2013-04-17
    • 1970-01-01
    • 1970-01-01
    • 2018-03-18
    相关资源
    最近更新 更多