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

错误-:8080/:1获取http://localhost:8080/404(正常)

冯枫
2023-03-14

我在8080端口创建了一个简单的服务器,并使用three.js在我的超文本标记语言文档中加载GLTF文件。这里是服务器端代码,然后是超文本标记语言代码。

var http= require('http');
var fs = require('fs');


http.createServer(function(req,res){
  res.writeHead(200,{'content-type':'text/html'})
  fs.readFile('1.html',function(error,data){
    if(error){
      res.writeHead(404);
      res.write('FILE CANNOT BE FOUND'+error)
    }
    else{
      res.write(data)
    }
    res.end()
  })
}).listen(8080,function(error){
  if(error){
    console.log('Somenthing went wrong'+error)
  }else{
    console.log('Server is setup');
  }
});
<!DOCTYPE html>
<html>
  <head>
    <meta charset=UTF-8
  </head>
  <body>
    <script type="module" src="https://threejs.org/build/three.js"></script>
    <script type="module" src="https://threejsfundamentals.org/threejs/resources/threejs/r115/examples/jsm/loaders/OBJLoader2.js">

    </script>
    <script src="1.js"></script>
    <script type="module">

    import {GLTFLoader} from 'https://threejsfundamentals.org/threejs/resources/threejs/r115/examples/jsm/loaders/GLTFLoader.js';

      let scene, camera, renderer;

      function init() {

        scene = new THREE.Scene();
        scene.background = new THREE.Color(0xdddddd);

        camera = new THREE.PerspectiveCamera(40,window.innerWidth/window.innerHeight,1,5000);
        camera.rotation.y = 45/180*Math.PI;
        camera.position.x = 800;
        camera.position.y = 100;
        camera.position.z = 1000;



        const hlight = new THREE.AmbientLight (0x404040,100);
        scene.add(hlight);

        const directionalLight = new THREE.DirectionalLight(0xffffff,100);
        directionalLight.position.set(0,1,0);
        directionalLight.castShadow = true;
        scene.add(directionalLight);
        const light = new THREE.PointLight(0xc4c4c4,10);
        light.position.set(0,300,500);
        scene.add(light);
        const light2 = new THREE.PointLight(0xc4c4c4,10);
        light2.position.set(500,100,0);
        scene.add(light2);
        const light3 = new THREE.PointLight(0xc4c4c4,10);
        light3.position.set(0,100,-500);
        scene.add(light3);
        const light4 = new THREE.PointLight(0xc4c4c4,10);
        light4.position.set(-500,300,500);
        scene.add(light4);

        var loader = new THREE.GLTFLoader();

    loader.load( 'model.gltf', function ( gltf ) {

    	scene.add( gltf.scene );

    }, undefined, function ( error ) {

    	console.error( error );

    } );

        renderer = new THREE.WebGLRenderer({antialias:true});
        renderer.setSize(window.innerWidth,window.innerHeight);
        document.body.appendChild(renderer.domElement);


      }
      function animate() {
        renderer.render(scene,camera);
        requestAnimationFrame(animate);
      }
      init();
    </script>
  </body>
</html>

现在获取错误-:8080/:1获取http://localhost:8080/404(好)我的两个文件都命名为1。js和1。html。

此外,它还有两个警告-

DevTools未能加载SourceMap:无法加载chrome的内容-extension://gighmmpiobklfepjocnamgkkbiglidom/include.preload.js.map:HTTP错误:状态代码404,net::ERR\u未知\u URL\u方案

DevTools未能加载SourceMap:无法加载chrome的内容-extension://gighmmpiobklfepjocnamgkkbiglidom/include.postload.js.map:HTTP错误:状态代码404,net::ERR\u未知\u URL\u方案

甚至我也尝试过对象文件。显示了相同的错误。

共有1个答案

桂宏旷
2023-03-14

那个服务器最多只提供一个文件。

你为什么要写自己的服务器?

在任何情况下,如果您想编写自己的服务器,您需要读取请求的文件,而不仅仅是1。html并且您需要发送我入侵的正确mime类型,但您确实需要使用库,因为有100种mime类型

const http = require('http');
const fs = require('fs');
const path = require('path');
const url = require('url');

const basePath = process.cwd();
const mimeTypes = {
  '.html': 'text/html',
  '.js': 'application/javascript',
  '.jpg': 'image/jpeg',
  '.png': 'image/jpeg',
};

http.createServer(function(req, res){
  const filename = `${basePath}${url.parse(req.url).pathname}`;
  fs.readFile(filename, function(error, data) {
    if(error){
      res.writeHead(404);
      res.end(`FILE ${filename} CANNOT BE FOUND ${error}`);
      return;
    }
    const mimeType = mimeTypes[path.extname(filename)];
    res.writeHead(200, {'content-type': mimeType || 'application/octet-stream'});
    res.end(data);
  })
}).listen(8080, function(error) {
  if (error){
    console.log('Something went wrong:', error);
  } else {
    console.log('Server is setup');
  }
});

大多数人不编写自己的服务器,他们使用现有的服务器,即使他们编写自己的服务器,他们也使用一个库,因为有很多微妙的事情需要处理,比如发送正确的mime类型、处理COR、处理选项和HEAD请求,流式传输结果,因为您实际上不想使用fs将千兆字节的视频加载到内存中。readFile,以及其他内容。

 类似资料:
  • 我对雄猫的东西真的很陌生。我下载了Tomcat7.0 windows installer,并使用默认配置安装了它。安装后,我在浏览器中键入localhost:8080,查看Tomcat是否正常工作。但是,它显示了如下的错误消息:Access error:404--未找到不能定位文档:/并且页面中没有其他显示Tomcat或Apache单词的内容。似乎Tomcat没有回应。 我谷歌搜索了这个论坛,但到

  • 使用Spring Boot(后端)和React(前端)开发时,我有一个奇怪的行为。React和Spring boot都在本地主机8080上运行。 当我从React to Spring Boot向localhost:8080发送POST请求时,我在Spring Boot中遇到了以下错误: 当我从localhost:3000(React development build)向localhost:808

  • 我无法解决这个问题。 在我看来,我应该在ui端的每一个请求中添加令牌头,但我不知道如何才能做到这一点? 以下是浏览器开发人员工具消息: POST 403{“时间戳”:1501570024381,“状态”:403,“错误”:“禁止”,“消息”:“在请求参数'_CSRF'或标头'x-csrf-token'上发现无效的CSRF令牌'null'。”,“路径”:“/helpdesk/logout”} 下面是

  • 我对Tomcat这玩意儿真的很陌生。我下载了Tomcat7.0 windows installer并使用默认配置安装了它。安装后,我在浏览器中键入localhost:8080,查看Tomcat是否工作。但是,它显示了这样的错误消息:Access error:404--Not Found不能定位文档:/并且页面中没有Tomcat或Apache单词显示任何其他内容。看来Tomcat没有反应。 我谷歌搜

  • 步骤: 在Tomcat服务器上单击右键>属性 在常规菜单中:单击切换位置 位置已从[workspace metadata]更改为位于localhost.Server的/Server/Tomcat V8.5服务器 在此配置之后,我再次启动tomcat服务器,现在正在工作。我可以看到Tomcat欢迎页面 按照我的设置文件: eventryapp/pom.xml eventryapp/src/main/

  • 因此,这意味着在调用any servlet之前,对/app/的重定向就发生了。 在firefox developer控制台中,我看到发出了两个请求,一个是针对'app',紧接着一个是针对'/app/',这是在调试中输入的请求。在第一个请求(用于“应用程序”)的响应头中,我得到: 连接保持-活动内容-长度0日期Thu,2018年11月15日11:23:06格林威治时间位置http://localho