我创建了一个Node.js服务器,当Javascript是HTML页面的一部分时,该服务器运行良好。我将JS移动到另一个文件并添加了一些图像。现在它不会将图像或JS加载到浏览器中。但是,当我直接打开网页时,网页呈现完美。这就是我的服务器的样子:
app.get('/',function(req,res){
res.end('Hello World!Go to /map to see the google map');
});
app.get('/map',function(req,res){
var conn;
//images must be sent to the client from the server...
res.sendfile(__dirname+'/client/google_maps.html');
//receiving requests from jQuery
});
我没有使用Express项目结构或Express中间件或Express配置来执行此操作。
答案 0 :(得分:3)
如果这是您的所有代码,我认为您遇到的问题是合理的。在浏览器请求时,您没有告诉服务器如何响应您的图像和脚本。例如,在您的google_map.html
文件中<script src="myjs.js"></script>
,您的浏览器会要求您的节点应用程序提供myjs.js
的内容,但您的服务器不知道如何处理它。< / p>
你可以尝试添加如下代码,看它是否有帮助。
app.get('/myjs.js', function (req, res) { res.sendfile(__dirname + '/myjs.js'); });
正如dimadima所说,Express提供了一个模块来处理你可以使用的静态文件,如
app.use(express.static(__dirname + '/public'));