angular - 角码新编译或服务器重启前无法显示上传的图片
问题描述
我一点头绪都没有……
语境
一个 2 页的 Angular 应用程序:
- 一页列出图片(图片文件存储在“资产/图片”中)
- 一页上传图片,通过将它们发布到负责将图片移动到“资产/图片”角度文件夹的节点/快递 API
问题
上传的图片无法显示1使用 src="assets/image/fileName.jpg" (得到一个 404)在 Angular 代码新编译或服务器重启之前 1
注意:我可以使用 src="data:image/jpeg;base64..." 方法2在上传页面中显示图片预览
直觉:恐怕我不应该在 Angular 资产文件夹中上传文件,但其他地方可能位于节点服务器的根目录。这是我当前的文件组织:3
代码
节点服务器
在角度“资产/图像”文件夹中移动图片
pictureFile.mv('src/assets/picture/'+ fileName);
角
<img class="picture" src="'src/assets/picture/'{{fileName}}">
问候, 瓦林克
解决方案
您的 FE 应用程序的来源位于 /src 文件夹下。它也是您尝试保存图片的地方。但是“运行时”应用程序位于 /dist 文件夹下。您可以将图片保存到运行时文件夹,只要您不重建 FE 应用程序,它就会按照您的意愿工作
pictureFile.mv('dist/assets/picture/'+ fileName);
当您使用此代码重建应用程序时,它只会重写资产文件夹。您还可以制作一个技巧并将一个文件保存到/dist
一个副本并保存到其中/src
,它适用于所有本地开发情况。但是,如果您尝试将其部署在某个地方,则不会这样做(因为您的本地 /src 将不再从远程服务器更新)。正确的方法是使用一些持久性,如gridFS
推荐阅读
- java - 将 myClass.ChatColor 对象与 .json 文件相互转换会导致不需要的前导 `Â` 字符
- javascript - 在 Node.js 中的另一个路由中执行的路由没有被执行
- asp.net - 如何编写访问控制
- html - 带有粘性列的角表与 Chrome 一起使用并在 Firefox 中失败
- java - 如果列包含数字为 1.12111E+11,如何使用 java 导入 excel 数据?
- google-cloud-firestore - 带有持久性的 React Native Web 的 Firestore 上出现“SharedClientState 无法解析在线状态”错误
- python - 从列中提取关键字到新列
- apache - 使用 certbot 在端口号上添加 SSL
- python - 如何获得每个元素的最小值和总和
- r - h2o.deeplearning 函数来训练 ANN 模型