我的项目文件结构如下:
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
,如何将其包含在客户端?
答案 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>
。这是因为您希望在网站的根目录中找到它。)