【发布时间】:2015-05-11 03:01:29
【问题描述】:
我正在尝试在我的 Angular 应用程序中实现一个图片库。我已经在这篇文章中管理了图片的上传:File upload: create directory if it doesnt exist。
因此,文件根据其project_id 放在一个子目录中。这工作正常。
所以现在我想展示一个项目的整个图像集。我如何访问基于project_id 的子目录以及如何以方便的方式显示一组图像?任何想法都表示赞赏。
我尝试路由到子目录。 GET 请求看起来没问题,project_id 被发送到路由。我可以使用 HTTP 200 代码访问目录,但显示图像不起作用,得到 404。
app.get('/uploads/:id', function (req, res, next){
fs.readdir('uploads/'+req.params.id+'/', function (err, files){
if (err) return next (err);
res.send(files);
});
});
角度控制器
$http.get('/profile/project/').then(function (res){
$scope.projects = res.data;
$rootScope.projectId = $scope.projects._id;
console.log($scope.projectId);
var id = $rootScope.projectId;
console.log("Rausgezogene ID: " + id);
$http.get('/uploads/'+id).success(function (files){
$scope.img = files;
});
});
显示
<li ng-repeat="x in img">
<img ng-src="uploads/{{projects._id}}/{{x}}" width="150" height="100"/>
</li>
控制台日志
干杯,Wandkleister。
【问题讨论】:
-
您在哪个特定部分遇到问题?问题有点太宽泛了。您是否在应用程序中注入了路由?什么是显示预期?
-
编辑了我的初始帖子
-
建议您将图像资产放在与 api 调用不同的目录中。 api 路由的路径与图像相同
-
但这是正确的目录,包括正确的文件名
-
对,但是您也有一个指向它的 api 路由,并且该路由没有另一个段,因此当您想要的只是图像时,它在 api 路由中失败。 Assets 和 api 不应该有相似的路径