我有一个现有的 Web 元素,几乎没有依赖项,例如
Material 化.css
lodash.js
脚本.js
样式.css
等等...
我认为 socketIO 不能像这样加载文件:
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
问题是我想让我的应用程序与 socket.io 通信,但是当我启动服务器文件 (index.js) 时,我可以看到我的页面,但完全没有 css 也没有脚本。
我的 index.js 看起来像这样:
var http = require('http');
var fs = require('fs');
var server = http.createServer(function(req, res) {
fs.readFile('./index.html', 'utf-8', function(error, content) {
res.writeHead(200, {"Content-Type": "text/html"});
res.end(content);
});
});
var io = require('socket.io').listen(server);
io.sockets.on('connection', function (socket) {
console.log('Un client est connecté !');
socket.emit('message', 'Vous êtes bien connecté !');
});
server.listen(8080);
那么你知道我如何告诉服务器注入(inject)我现有网站的所有资源吗?
最佳答案
我认为您使用的示例代码只是为了提供一个向客户端提供服务的简单示例,而不是实际提供 HTML 页面或其他静态内容。
使用 Express,您可以这样做:
var app = require('../app');
var server = http.createServer(app);
然后在 app.js 中:
app.use(express.static(path.join(__dirname, 'public'))); //to render static content files to the browser from a predefined static resource directory
注意 express.static
是如何指向静态内容应该放置的位置的。在本例中,它位于 /public
文件夹中(它可以是您选择的任何其他文件夹)。 index.html
、*.css
以及您提到的所有资源都应该放在那里。
可以找到详细示例here .
最后,您在问题中粘贴的代码无需打开并提供 http.createServer
中的 index.html
文件即可运行;它不适用于静态内容。
关于javascript - NodeJS - 如何在现有元素中注入(inject)所有依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32910180/