我应该在哪里放置一个自定义的javascript模块,以便浏览器可以找到它

时间:2015-03-07 01:11:40

标签: node.js npm

我的项目文件结构如下:

enter image description here

config.js是我想在客户端和服务器之间共享的模块。

在服务器端文件app.js中,我写了var config = require('./config');,可以正确找到并包含模块。我还写了app.use(express.static(path.resolve(__dirname, 'client')));,以便将文件夹client中的文件提供给客户端。

但是,在客户端html文件index.html中,我写了

<script src="/config/config.js"></script>
<script src="config.js"></script>

但是它们都导致404 Not found错误。我应该在哪里放config.js,如何将其包含在客户端?

1 个答案:

答案 0 :(得分:2)

说明:

您的config.js实际上无法由您的客户访问。通过做

app.use(express.static(path.resolve(__dirname, 'client')));

您告诉您的应用在client文件夹中查看请求的网址并提供与网址匹配的文件。
(例如,访问http://127.0.0.1/ref.html会导致您的应用在ref.html文件夹中查找名为client的文件。如果找到,则只会将其发回。否则,您将面临{ {1}}。)

知道这一点,我们可以得出结论

404

找不到任何东西。它会在<script src="/config/config.js"></script> 中查找文件夹config,但不会看到它。这是第一个client

以同样的方式,

404

将在<script src="config.js"></script> 文件夹中请求名为config.js 的文件。另一个client

决议:

您只需将其放在404文件夹中,然后将client更改为var config = require('./config');

然后您就可以在html中使用var config = require('./client/config');了。 (请注意我添加到路径中的<script src="/config.js"></script>。这是因为您希望在网站的根目录中找到它。)