描述 Jquery不能从本地磁盘工作 - 使用任何jquery版本的下载副本都无法正常工作。 它可以通过互联网上的ref链接正常工作。
每个jquery文档 - 它也可以从本地磁盘工作 (即脚本src ="本地路径" ...)。 我的代码工作正常,引用外部链接到jquery lib(版本2.2.4,3.2.1)没问题
每当我尝试回退或只是将本地下载的文件用于同一版本时,它就会失败!
相关代码是
<script src async = './jquery-3.2.1.min.js'></script>
or just
<script src = './jquery-2.2.4.min.js'></script>
我尝试了几个其他的workarrounds,包括将整个文件粘贴到我的html脚本中)没有在chrome和firefox windows 7-8 node-8.9.1上都没有工作 尝试类似于以下内容:
<script>window.jQuery || document.write('<script src="jquery-2.2.4.min.js"><\/script>')</script>
错误信息是:
detailed error: ReferenceError: $ is not defined
detailed error: TypeError: pageExecute is undefined
一个建议的解决方案是:使用dev服务器。 什么是开发服务器以及为什么需要?意味着什么?所以我不能只使用jquery lib的本地副本?
答案 0 :(得分:1)
node.js默认不提供任何文件(与其他一些Web服务器不同)。因此,如果您希望jQuery文件由您自己的Web服务器提供,那么您需要创建一个提供该文件的路由,或者使用提供多个文件的express.static()
之类的文件。
由于您的网址为http://localhost:6060/example1
,因此您通过自己的网络服务器加载网页。因此任何脚本标记如:
<script src="jquery-2.2.4.min.js"></script>
将从您自己的网络服务器请求:
http://localhost:6060/jquery-2.2.4.min.js
如果您没有在node.js服务器中为该特定网址定义路由,则会出现错误。如果您在node.js服务器中使用Express,则需要以下内容:
app.use(express.static("/someDirPath"));
创建一个中间件处理程序,它将自动在/someDirPath
中查找请求的文件。或者,您需要为要提供的文件制作特定路线:
app.get("/jquery-2.2.4.min.js", function(req, res) {
res.sendFile("/somePath/jquery-2.2.4.min.js");
});
在我的设计项目中,我对静态文件和动态路由进行了URL区分。我在任何公共资源的URL路径的开头使用/public
,因为这样可以很容易地区分哪个请求用于静态资源,哪个请求用于动态服务的路由。因此,在我的脚本文件中,我使用:
<script src="/public/js/jquery-2.2.4.min.js"></script>
然后,在我的服务器上,我会使用:
// serve static resources from the public directory below our project
app.use(express.static("/public", path.join(__dirname, public)));
然后,我有一个公共静态文件的目录结构:
myAppDir
various server files
- public
- js
- css
- img
答案 1 :(得分:0)
文件路径问题
如果同一文件夹中的js和html文件都使用:
<script type="text/javascript" src="jquery-2.2.4.min.js"></script>