2012-03-19 13 views
1

フロントエンド用にポート80でApache + PHPを使用し、ポート3000で動的更新用にNode.js + Socket.IOを使用するWebサイトを構築しています。 2人のJavascriptリソースを共有する人はほとんどいません。どのように共有できるか知りたいのですが。Node.jsとApache/PHPの間で共有されるjavascriptリソース

がここに私のプロジェクトのレイアウトです:

project/ 
    www/     // Apache DocumentRoot 
     index.php 
     js/    // Javascript files for the HTML pages 
     css/ 
    app/ 
     App.php   // All the PHP files 
    node/ 
     node_modules/ // Node modules installed by NPM 
     app.js   // Node.js application 

私のPHPアプリケーションは、HTMLコードを生成するとき、それはunderscore.js、BACKBONE.JS、socket.io.jsのようなもののために<head>にいくつかの<script>タグを配置する必要があり、エセレア。しかし、これらのスクリプトはすべてnode_modulesディレクトリのどこかにあります。

私はさまざまな例を見てきましたが、ほとんどの場合、Node.jsを使用してHTMLページも配信します(通常はExpressフレームワークを使用します)。したがって、スクリプトには/socket.io/socket.io.jsのようなスクリプトが生成されます。しかし、私の場合、2つのサーバーが2つのポートで動作しています。

だから、どのように私は手動でDocumentRootの下jsディレクトリにnode_modulesディレクトリから物事をコピーせずに、適切なJavaScriptファイルを読み込むことができますか?

答えて

3

2つのオプションがあります:場合

  • あなたのApacheの設定ファイルでApache2のエイリアスを作成します
  • (node_modulesへのwww /のJSから指している)シンボリックリンクを作成しますが

hereを参照してください)あなたはApache2の設定にアクセスできますが、おそらく2番目の解決策が良いでしょう。シンボリックリンクのソリューションを使用する場合、問題が発生した場合は、フォルダの所有権を再確認してください。

+0

私はあなたの答えを正しいものとして受け入れました。最終的に私は別の解決策を選択しました。私は現在、ビルドシステムとしてPhingを使用しています。ファイルを正しいディレクトリにコピーして(同時にそれらを小さくする)こともできます。 –

関連する問題