Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在ExpressJS 4中使用来自不同域的公共目录_Javascript_Node.js_Heroku_Express - Fatal编程技术网

Javascript 在ExpressJS 4中使用来自不同域的公共目录

Javascript 在ExpressJS 4中使用来自不同域的公共目录,javascript,node.js,heroku,express,Javascript,Node.js,Heroku,Express,我正在为Heroku部署一个简单的Express应用程序。它基本上是一个公文包站点,为响应客户端javascript的ajax调用提供图像服务。现在,我的所有图像(以及其他静态css和客户端JS文件)都位于公共目录中,该目录是在通过Express CLI生成器实例化应用程序时创建的 当我在本地运行它时,一切都正常,但我不想将我的图像文件直接上传到Heroku。让应用程序在那里运行似乎是最容易的,这样我就不必自己设置服务器,但我想为我在别处付费的主机上的图像提供服务。似乎只要更改Express中间

我正在为Heroku部署一个简单的Express应用程序。它基本上是一个公文包站点,为响应客户端javascript的ajax调用提供图像服务。现在,我的所有图像(以及其他静态css和客户端JS文件)都位于公共目录中,该目录是在通过Express CLI生成器实例化应用程序时创建的

当我在本地运行它时,一切都正常,但我不想将我的图像文件直接上传到Heroku。让应用程序在那里运行似乎是最容易的,这样我就不必自己设置服务器,但我想为我在别处付费的主机上的图像提供服务。似乎只要更改Express中间件查找公共目录的位置,就可以简单地为所有静态文件提供服务:

// Works like this with everything in one place:
app.use(express.static(path.join(__dirname, 'public')));

// What I thought I could do to serve from elsewhere:
app.use(express.static('www.mydomain.net/path/to/public'));
我在这方面尝试了很多变化,比如包括_dirname(尽管我很确定这是错误的)和改变路径(包括在www.mydomain.net的前端添加/到)。我还确保其他地方的路径前面不包含“/”,因此它们不应该在自己的目录中查找

所有这些工作都没有——我都在本地使用foreman和npm start进行了尝试,并实际推给了我的heroku大师。我看到了HTML的基本框架,但是没有应用CSS和JS,也没有显示图像。控制台显示404个错误

我在谷歌上搜索了相当广泛的内容,了解了很多关于Express和Heroku的知识,但仍然无法实现这一点。那么,有没有一个我忽略的简单解决方案,或者我正在尝试做一些毫无意义的事情

编辑:我无法理解这一点,所以我只在一台服务器上安装了整个应用程序。工作得很好,尽管我仍然对此感到好奇