Я сделал приложение для веб-чата, используя Node.js, socket.io и express. Работает хорошо.
Теперь я хочу переместить приложение чата на свой веб-сайт, но у меня проблема с путями.
Мой веб-сайт основан на Laravel framework и имеет такую структуру.
Website
/public
/js
/jquery1-10.js
/chat.js ----> client side chat file.
/app.js ----> node.js server side file.
/index.php
Laravel использует макеты, поэтому в index.php
файле URL::asset('/path-to-file')
хорошо работает для всех файлов внутри общедоступного каталога. включая таблицы стилей и javascript.
Внутри моего index.php
файла я вызываю javascripts следующим образом:
<script src="{{ asset('js/jquery1-10.js'); }}" ></script> // public/js/jquery1-10.js
<script src="{{ asset('js/chat.js'); }}" ></script> // public/js/chat.js
<script src="{{ asset('/socket.io/socket.io.js'); }}" ></script> // ???
оба jquery1-10.js
и chat.js
загружаются хорошо
НО не могут загрузить файл socket.io. Думаю, socket.io создается автоматически! и я понятия не имею, где это.
Может кто-нибудь мне с этим помочь?
это app.js
файл:
var http = require("http");
var express = require("express"),
app = express(),
server = http.createServer(app),
io = require("socket.io").listen(server);
server.listen(4000);
app.get("/*", function( req, res ) {
res.sendfile( __dirname + "/index.php" );
});
А это мой файл chat.js - ›клиентская сторона.
jQuery( function($){
var socket = io.connect(); ---> error happens here. can not load socket.io.js file
Решено
ну, я использовал эту строку: <script src="http://localhost:4000/socket.io/socket.io.js" ></script>
вместо этого: <script src="{{ asset('/socket.io/socket.io.js'); }}" ></script>
и это сработало.