如何使用 Docker 在 Node Express 容器中提供静态内容?
How to serve static content in a Node Express container with Docker?
我使用 express generator 创建了一个项目,它自动将 public 文件夹包含在 app.js ...
我正在尝试在我的 index.ejs 中显示图像,但它不起作用...
什么是正确的 url 使用?
网上查了一下说src应该是这个img src="localhost:8000/images/1.png"
但是,我使用的是 docker 工具箱,所以我使用的是 docker 快速启动终端,我通过使用 docker i.p 让它工作
所以它像 img src="127.432.343:8000/images/1.png"
但是该 IP 是我的计算机特有的,我希望我的同事能够看到图像而无需重构代码...
我的容器的名称是 web 所以我也试过 我试过 src="web:8000/images/1.png"
但这行不通,不过我觉得应该可以,任何提示请在这里尝试几个小时。
此外,如果要在服务器上投入生产,最好的方法是什么?如果我最终将代码上传到 AWS,我不想更改代码 ...
express 中的静态内容必须在 /public 文件夹中。 public/images 文件夹下的图像。如果您的图像在该文件夹中,那么应该可以从您所说的 url 访问它。
要从 ejs 文件显示它,您只需指向 images/1.png(使用相对路径):
<img src="images/i.png" />
这样,上传到任何生产服务器都不会遇到任何问题。
对于您网络中的其他计算机来测试您的项目,您需要检查您计算机的本地网络 ip (ipconfig / ifconfig) 并使用 ip 地址端口 8000 进行测试。并非每个内部网络都已完全配置其 DNS。
同时检查您计算机的防火墙以允许 tcp 流量通过端口 8000。希望对您有所帮助。
你有机会切换到 Docker for Mac 吗?这样你就可以在 localhost
上看到它
我使用 express generator 创建了一个项目,它自动将 public 文件夹包含在 app.js ...
我正在尝试在我的 index.ejs 中显示图像,但它不起作用... 什么是正确的 url 使用?
网上查了一下说src应该是这个img src="localhost:8000/images/1.png"
但是,我使用的是 docker 工具箱,所以我使用的是 docker 快速启动终端,我通过使用 docker i.p 让它工作
所以它像 img src="127.432.343:8000/images/1.png" 但是该 IP 是我的计算机特有的,我希望我的同事能够看到图像而无需重构代码...
我的容器的名称是 web 所以我也试过 我试过 src="web:8000/images/1.png"
但这行不通,不过我觉得应该可以,任何提示请在这里尝试几个小时。
此外,如果要在服务器上投入生产,最好的方法是什么?如果我最终将代码上传到 AWS,我不想更改代码 ...
express 中的静态内容必须在 /public 文件夹中。 public/images 文件夹下的图像。如果您的图像在该文件夹中,那么应该可以从您所说的 url 访问它。
要从 ejs 文件显示它,您只需指向 images/1.png(使用相对路径):
<img src="images/i.png" />
这样,上传到任何生产服务器都不会遇到任何问题。
对于您网络中的其他计算机来测试您的项目,您需要检查您计算机的本地网络 ip (ipconfig / ifconfig) 并使用 ip 地址端口 8000 进行测试。并非每个内部网络都已完全配置其 DNS。
同时检查您计算机的防火墙以允许 tcp 流量通过端口 8000。希望对您有所帮助。
你有机会切换到 Docker for Mac 吗?这样你就可以在 localhost
上看到它