我无法使用<script src="node_modules/jquery/dist/jquery.min.js"></script>
在我的index.html文件中因为:
无法加载资源:服务器响应状态为404(未找到) http://localhost:8080/node_modules/jquery/dist/jquery.min.js
这是因为我在服务器文件代码中的else语句:
var http = require('http')
var url = require('url')
var fs = require('fs')
var server = http.createServer((req, res) => {
let parsedUrl = url.parse(req.url, true)
if (parsedUrl.pathname === '/') {
console.log('home page')
fs.readFile('./index.html', (err, data) => {
res.writeHead(200, { 'Content-Type': 'text/html' })
res.end(data)
})
} else if (parsedUrl.pathname === '/readJson') {
console.log('read json')
fs.readFile('./data.json', (err, data) => {
res.writeHead(200, { 'Content-Type': 'application/json' })
res.end(data)
})
} else {
console.log('We can\'nt load any resources because of this statement')
res.writeHead(404)
res.end()
}
})
server.listen(8080)
我已经阅读过使用快速模块时如何解决此问题。有没有办法在不使用该模块的情况下解决问题?
答案 0 :(得分:1)
最简单的方法是简单地从CDN加载jQuery,而不是从您自己的服务器上提供它。这是一种被广泛接受的最佳实践。
示例:
<script src="https://code.jquery.com/jquery-3.2.1.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script>
您可以在此处找到从CDN加载jQuery的各种选项:https://code.jquery.com
如果您在代码示例中创建了一个HTTP服务器并希望它为jQuery提供服务,那么您必须使用jquery.min.js
阅读fs.readFile
并提供其内容,就像您和#39;使用您的data.json
文件。
答案 1 :(得分:1)
我建议使用CDN代替。如果你安装了jQuery模块,你可以将它用于你的后端JavasSript。但是你想在前端使用它。您正在使用NodeJS作为Web服务器来提供HTML页面。 http模块对其他文件一无所知,因为它只读取index.html
。
因此,您可能希望搜索解决方案以阅读/提供完整的文件夹。使用此文件夹,我们可以将其称为public
,您可以存储公共可用的HTML,CSS和JS文件。由于HTTP模块知道整个文件夹,因此可以在前端使用所有文件。这也是分离后端en前端JavaScript的好方法。