이것은 나를 미치게 만든다 ... 내가 Express + Socket.io의 작업 버전을 가지고있는 동안, 나는 out-of- 상자 NPM은 새 프로젝트 폴더에 설치됩니다. 아무도 제가 누락 된 것을 지적 해 줄 수 있습니까? 그때, 내 프로젝트 디렉토리 (pwd
)에 node_modules
폴더를 생성 할Express + socket.io : socket.io 클라이언트 스크립트는 404
: 여기 내 프로세스의
npm install express
npm install socket.io
두 명령을 실행 예상대로 내 프로젝트의 node_modules
폴더에 패키지를 저장합니다.
var express = require('express'),
server = express.createServer().use(express.static(__dirname+'./public')).listen(8080),
io = require('socket.io').listen(server);
내 public
폴더 내 응용 프로그램에 대한 고정 자산을 포함 : 이제 다음 내 서버를 설정합니다.
<script src="/socket.io/socket.io.js"></script>
마지막으로, 나는 내 서버 스크립트를 실행하고 웹 브라우저에서 응용 프로그램으로 이동 : 내 공공 인덱스 HTML 페이지의 스크립트 태그를 포함합니다. 내 정적 공개 파일은 모두 제대로 제공되지만 /socket.io/socket.io.js
에 404가 표시됩니다. 이제 다른 이전 프로젝트의 express
패키지를 바꿔서이 전체 시스템을 사용할 수 있습니다. 어떻게 든 패키지 인스턴스가 다르게 구성되어 있지만이를 재현하는 방법을 알 수는 없습니다. npm install -d
을 실행해도 도움이되지 않지만 (npm install -d
을 실행하는 동안 특정 pwd
이 필요합니까?) Express 웹 사이트에서 종속성 설치에 대해 언급합니다. NPM으로 설치 한 후 새 Express 인스턴스를 구성하는 데있어 중요한 것을 놓치고 있어야한다는 것을 알았습니다.
모든 통찰력에 감사드립니다!
express 및 socket.io의 어떤 버전을 설치하고 있습니까? 방금 진행 한 단계를 거쳤습니다. 정적 자산과 socket.io.js가 잘 작동합니다. –
클라이언트 측 socket.io.js가 동적으로 생성되므로 명시 적 정적 서버와 관련이 없어야합니다. 실패한 경로에 대한 자세한 정보를 얻을 수 있습니까? http : // localhost : 8000/socket.io/socket.io.js 또는 http : // localhost : 8000/socket.io/(실행중인 포트 번호로 8000을 대체하면 어떻게되는지 확인하십시오. 귀하의 애플 리케이션에) – Sdedelbrock
디모데 디토 ... 내 컴퓨터에서 작동합니다. Windows에서 다음과 같이 정적 파일의 경로를 변경해야했지만 다음과 같이 __dirname + '/ public'(점을 제거함) –