【问题标题】:How to use client side Jquery with Node.js and Jade?如何在 Node.js 和 Jade 中使用客户端 Jquery?
【发布时间】:2015-10-07 18:32:20
【问题描述】:

我正在尝试将 jquery 代码放在我的 node.js 应用程序的主页上。这是我到目前为止所拥有的:

  script(type='text/javascript' src='public/javascripts/jquery-min.js')
  script.
    $( document ).ready(function() {
      alert('hello');

    });

生成这个 html

<script type="text/javascript" src="public/javascripts/jquery-min.js"></script>


<script>$( document ).ready(function() {
  alert('hello'); 

}); 

</script>

但当我的应用启动时,我没有收到任何警报。此外,当我尝试直接在 http://localhost:3000/public/javascripts/jquery-min.js 访问该资源时,我收到一个错误:Cannot GET /public/javascripts/jquery-min.js

这是预期的吗?我必须做些什么才能从我的应用程序访问 jquery 代码吗?

【问题讨论】:

  • 您使用什么来为您的客户提供 html?您是在构建自己的路由器/服务器,还是使用 Express 之类的东西?

标签: javascript jquery node.js pug


【解决方案1】:

我的猜测是你没有告诉你的 Express 服务器去哪里寻找静态文件。将以下行添加到您的 Express 配置中:

// Assuming you have a line such as var app = exports.app = express();
app.use(express.static(path.join(__dirname, 'public')));

...您放在public 目录中的任何内容都可以通过 Express 访问。

【讨论】:

  • 嗯,不,我有。当我尝试直接访问该页面时,是否应该给我一个无法获取资源的错误?它必须进入 /public 还是可以进入 /public/javascripts?
  • 您的 jquery-min.js 文件必须位于 /public/javascripts 下,Express 才能找到它,因为这是您在 Jade 文件中指定的路径。
  • 另外,您能否检查一下您的文件实际上是否命名为jquery-min.js?也就是说,jquerymin 之间有一个破折号。缩小后的文件通常是*.min.js,这就是您在自己的答案中调用 CDN 时的调用方式。
  • 是的,它的名字是 jquery-min.js。下载后我个人命名了
  • 尝试访问另一个静态文件。例如,在您的/public/ 目录下创建一个文件test.txt,然后尝试从客户端请求它。你读了吗?
【解决方案2】:

在你告诉 Express 去哪里寻找这样的静态文件之后:

var express = require('express');
var app = express();

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

它将在公用文件夹中查找文件,因此如果您想引用任何文件,您不必在其前面放置“/public”。所以这行不通:

script(type='text/javascript' src='public/javascripts/jquery-min.js')

但这会:

script(type='text/javascript' src='javascripts/jquery-min.js')

对于直接获取文件,它的工作方式相同,您必须省略“/public”并像这样使用它:

http://localhost:3000/javascripts/jquery-min.js

【讨论】:

    【解决方案3】:

    我不知道为什么资源不可用。但是通过使用script(type='text/javascript' src='http://code.jquery.com/jquery.min.js') 它开始工作了

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-28
      • 2013-06-30
      • 2016-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-23
      相关资源
      最近更新 更多