我在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。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