У меня проблемы с загрузкой 3D-моделей из папки на моем компьютере с использованием тестового сервера localhost node.js с тремя. js библиотеками.
app. js: (Я запускаю его через командную строку в каталоге проекта, используя: node app.js
command)
var app = require('express')();
var http = require('http').createServer(app);
var io = require('socket.io')(http);
var THREE = require('three');
app.get('/', function(req, res) {
res.sendFile(__dirname + '/index.html');
});
io.on('connection', (socket) => {
console.log('a user connected');
});
http.listen(3000, () => {
console.log('listening on *:3000');
});
Соответствующая часть индекса. html:
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>Index.html title</title>
</head>
<body>
<script src="/socket.io/socket.io.js"></script>
<script src="//threejs.org/build/three.js"></script>
<script src="//threejs.org/examples/js/loaders/AMFLoader.js"></script>
<script src="//threejs.org/examples/js/controls/OrbitControls.js"></script>
<script>
var socket = io();
var camera, scene, renderer;
init();
function init() {
scene = new THREE.Scene();
scene.add( new THREE.AmbientLight( 0x999999 ) );
camera = new THREE.PerspectiveCamera( 35, window.innerWidth / window.innerHeight, 1, 500 );
camera.up.set( 0, 0, 1 );
camera.position.set( 0, -9, 6 );
camera.add( new THREE.PointLight( 0xffffff, 0.8 ) );
scene.add( camera );
var grid = new THREE.GridHelper( 25, 1.0, 0xffffff, 0x555555 );
grid.rotateOnAxis( new THREE.Vector3( 1, 0, 0 ), 90 * ( Math.PI/180 ) );
scene.add( grid );
renderer = new THREE.WebGLRenderer( { antialias: true } );
renderer.setClearColor( 0x999999 );
renderer.setPixelRatio( window.devicePixelRatio );
renderer.setSize( window.innerWidth, window.innerHeight );
document.body.appendChild( renderer.domElement );
/* everything up till here works */
var loader = new THREE.AMFLoader();
loader.load('/models/rook.amf', function ( amfobject ) { //'./models/rook.amf'
scene.add( amfobject );
render();
} );
/* ^^^ this is the part not working */
var controls = new THREE.OrbitControls( camera, renderer.domElement );
controls.addEventListener( 'change', render );
controls.target.set( 0, 1.2, 2 );
controls.update();
window.addEventListener( 'resize', onWindowResize, false );
}
function onWindowResize() {
camera.aspect = window.innerWidth / window.innerHeight;
camera.updateProjectionMatrix();
renderer.setSize( window.innerWidth, window.innerHeight );
render();
}
function render() {
renderer.render( scene, camera );
}
</script>
</body>
</html>
Мой каталог проекта:
введите описание изображения здесь
Ошибка:
GET http://localhost:3000/models/rook.amf 404 (Not Found)
Как правильно загружать файлы с помощью Node и 3. js на моем простом тесте сервера?