Angular 在新编译或服务器重新启动之前,无法显示上载的图片

Angular 在新编译或服务器重新启动之前,无法显示上载的图片,angular,caching,compilation,image-uploading,file-access,Angular,Caching,Compilation,Image Uploading,File Access,我没有线索了 上下文 2页的角度应用程序: 一页列出图片(图片文件存储在“资产/图片”中) 上传图片的一页,通过将图片发布到负责将图片移动到“资产/图片”文件夹的node/express API 问题 在新编译或重新启动服务器之前,无法使用src=“assets/image/fileName.jpg”(获得404)显示上传的图片 注意:我可以使用src=“data:image/jpeg;base64…”方法在上载页面中显示图片预览 直觉:恐怕我不想上传Angular assets文件夹中的

我没有线索了

上下文 2页的角度应用程序:

  • 一页列出图片(图片文件存储在“资产/图片”中)
  • 上传图片的一页,通过将图片发布到负责将图片移动到“资产/图片”文件夹的node/express API
问题 在新编译或重新启动服务器之前,无法使用src=“assets/image/fileName.jpg”(获得404)显示上传的图片

注意:我可以使用src=“data:image/jpeg;base64…”方法在上载页面中显示图片预览

直觉:恐怕我不想上传Angular assets文件夹中的文件,但其他地方可能在节点服务器的根目录下。以下是我当前的文件组织:

代码 节点服务器 在“资源/图像”文件夹中移动图片
pictureFile.mv('src/assets/picture/'+文件名)

有棱角的

问候,,
Valink

您的FE应用程序来源位于/src文件夹下。它也是您尝试保存图片的地方。但是,“运行时”应用程序位于/dist文件夹下。您可以将图片保存到运行时文件夹,只要您不重建FE应用程序,它就可以正常工作

pictureFile.mv('dist/assets/picture/'+ fileName);

使用此代码重建应用程序时,它只会重写assets文件夹。您还可以制作一个技巧,将一个文件保存到
/dist
,并将一个副本保存到
/src
,这样在本地开发的所有情况下都可以使用。但是,如果您尝试将其部署到某个地方,它将不起作用(因为您的本地/src将不再从远程服务器更新)。正确的方法是使用一些持久性,如

谢谢你的回答和这些澄清。我尝试了您告诉我的:“您可以将图片保存到运行时文件夹”,而且当我使用Node为Angular应用程序(dist文件夹)提供服务时,它确实工作得很好。但是,我当前的“运行时”应用程序不在/dist文件夹下;我目前正在使用Angular local/dev服务器(使用
ng serve
和webpack)从livereload中获益。可能我应该把上传的图片当作服务器文件,而不是应用程序文件;我试图将它们存储在服务器根文件夹中,但Angular应用程序无法再访问它们。与此相关:但我需要livereload