0

Node.js、socket.io、express を使って Web チャット アプリケーションを作成しました。うまくいっています。
チャット アプリケーションを自分の Web サイトに移動したいのですが、パスに問題があります。私のウェブサイトはLaravel フレームワーク
に基づいており、この構造を持っています。

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>

そしてそれはうまくいきました。

4

1 に答える 1