当前位置: 首页 > 知识库问答 >
问题:

为什么我的节点静态文件服务器会删除请求?

仲和韵
2023-03-14

我有一个标准的Node.js静态文件服务器,我想用它来服务相同目录中的普通html、js、css和jpg文件(即典型的HTML5单页应用程序)。我希望节点服务器能够正确地处理这一点。我看到的不一样。

提供index.html文件,但随后的请求将被删除(即它们永远不会到达服务器)。在我的chrome dev工具中,我看到了如下内容:

GET http://projectcoho.cloudfoundry.com/css/coho.css  http://projectcoho.cloudfoundry.com/:7
GET http://projectcoho.cloudfoundry.com/sencha-touch/sencha-touch-debug.js  http://projectcoho.cloudfoundry.com/:8
GET http://projectcoho.cloudfoundry.com/coho-debug.js  http://projectcoho.cloudfoundry.com/:8
var path = ".";
var port = process.env.VCAP_APP_PORT || 3000;;

var file = new(static.Server) (path, {
  cache: 600
});

mime.define({
   'text/css': ['css'],
   'text/javascript': ['js'],
   'image/jpeg': ['jpg', 'jpeg']
});

http.createServer(function (request, response) {

    var uri = url.parse(request.url).pathname;
    var filename = libpath.join(path, uri);

    console.log("URI: " + request.url + " , filename: " + filename);

    libpath.exists(filename, function (exists) {
        console.log("Serving " + filename);
        if (!exists) {
            console.log("Not found");
            response.writeHead(404, {
                "Content-Type": "text/plain"
            });
            response.write("404 Not Found\n");
            response.end();
            return;
        }

        if (fs.statSync(filename).isDirectory()) {
            filename += '/index.html';
        }

        var type = mime.lookup(filename);
                file.serveFile(filename, 200, {'content-type' : type}, request, response);
    });
}).listen(port);

我在这里漏掉了什么?

我正在使用节点v0.6.15

共有1个答案

简俊楚
2023-03-14

最后,答案是我的cache.manifest文件不正确。客户端应用程序正在缓存中查找资源,但不存在。当我更正舱单时,事情开始奏效了。

 类似资料:
  • 我想做一个简单的服务器,这样我就可以在开发时为本地html和JS文件服务。 我试图让一个节点应用程序只接受URL中的任何内容,并用页面响应,但没有成功(这是我对express的尝试)。 但这总是在处查找文件,而不是正确的路径。 我也尝试过一个简单的静态服务器的http-server,但它总是在为js文件提供服务时崩溃。https://github.com/nodeapps/http-server

  • 我们先来看看最简单的本地静态文件服务配置示例: server { listen 80; server_name www.test.com; charset utf-8; root /data/www.test.com; index index.html index.htm; } 就这些?

  • 所以我对web开发还是个新手,现在我和我的一个面向web的朋友开始了一个项目,他给了我各种各样的框架。我们在做Vuejs,jade,stylus和Jeet。对于一个新手来说,这当然是非常混乱的,因为没有Vuejs示例使用jade,没有jade示例使用Vuejs,等等。 然而,对于这个项目,我们需要一个可以处理对Google maps的api调用、保存东西等的后端。我们两个都没有这样做的经验,我尝试

  • 问题内容: 到目前为止,我一直在使用Webstorm的内置网络服务器来为我的内容提供服务,而我的客户端应用程序一直在不运行任何客户端的情况下进行开发。 当人们使用带有Express的Node充当其Web服务器时,我经常看到的是关于是否应将HTML文件与node或与客户端代码一起放置的争论。 我了解html或css中包含的javascript文件最好存储在客户端目录中? 所以我的第一个问题是,使用这

  • 我试着设置nginx来服务我的node.js应用程序静态文件。问题是,当我试图得到我的文件时,我的状态是403禁止的。 当我尝试下载一个文件从 /root/appJs/public/css/style.css我写http://sitename.com/css/style.css我retive 403禁忌状态。我已经在一些论坛上寻找解决方案,但没有

  • 有没有办法将这些文件的所有权大规模转移到另一个“通常的”谷歌驱动器帐户?