【问题标题】:Shared javascript resources between Node.js and Apache/PHP在 Node.js 和 Apache/PHP 之间共享 javascript 资源
【发布时间】:2012-03-19 11:06:23
【问题描述】:

我正在构建一个网站,它在 80 端口上使用 Apache + PHP 作为前端,在端口 3000 上使用 Node.js + Socket.IO 进行动态更新。两者之间有很多共享的 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 代码时,它需要在 <head> 中添加一些 <script> 标记,用于诸如 underscore.js、backbone.js、socket.io.js 等。但是这些脚本都在 de node_modules 目录的某个地方。

我见过各种各样的例子,但大多数都使用 Node.js 来提供 HTML 页面(通常使用 express 框架)。因此,他们生成的脚本包括 /socket.io/socket.io.js。但就我而言,我有两台服务器在两个端口上运行。

那么,如何在不手动将 node_modules 目录中的内容复制到 DocumentRoot 下的 js 目录的情况下加载正确的 Javascript 文件?

【问题讨论】:

    标签: php javascript apache node.js


    【解决方案1】:

    有两种选择:

    • 创建符号链接(从 www/js 指向 node_modules)
    • 在您的 Apache 配置文件中创建一个 Apache2 别名(请参阅here

    如果您有权访问 Apache2 配置,则第二种解决方案可能是更好的解决方案。在使用符号链接解决方案时,如果遇到问题,请确保仔细检查文件夹的所有权。

    【讨论】:

    • 我已接受您的答案为正确答案。最后我选择了一个不同的解决方案。我现在使用 Phing 作为构建系统,我只需让它将文件复制到正确的目录(并同时缩小它们)。
    猜你喜欢
    • 1970-01-01
    • 2010-10-09
    • 2012-04-07
    • 2013-12-10
    • 2021-09-24
    • 2011-05-11
    • 2019-10-07
    • 1970-01-01
    相关资源
    最近更新 更多