2015-01-08 2 views
0

저는 Sails.js의 Api에서 api를 통해 서버에 이미지를 업로드하고 나중에 모바일 애플리케이션에서 사용할 수 있도록 업로드 된 이미지의 URL을 가져와야합니다. 나는이Sails.JS에 업로드 된 이미지의 URL을 다운로드 받으십시오.

http://localhost:1337/images/bc4f03ec-0d9c-4553-b59a-9ddec427a265.jpg 
처럼 내 로컬 호스트로의 경로를 추가하면이 날 다음처럼 결과를 제공

upload: function (req, res) { 

    var uploadPath = '../../assets/images' ; 
    req.file('avatar').upload({ dirname: uploadPath },function onUploadComplete (err, files) { 

     if (err) { 
      return res.serverError(err); 
     } else { 
      var image = files[0]; 
      var fd = image.fd ; 
      var index = fd.lastIndexOf('/'); 
      var imageName = fd.substring(index+1 , fd.length); 
      return res.json({ image : '/images/' + imageName }); 
     } 
    }); 
} 

...

{ 
    "image": "/images/bc4f03ec-0d9c-4553-b59a-9ddec427a265.jpg" 
} 

을 다음과 같이이 일을 위해, 내 업로드 코드는

브라우저에서 이미지가 제대로 작동하고 있습니다. 그러나 프로덕션 서버에 응용 프로그램을 배포하면 작동하지 않고 404 오류가 발생합니다.

, 나는 이미 작성한/경로 항목이

'get /images/*' : { 
     controller : 'FileController', 
     action : 'download' 
    } 

입니다하지만 그건 도움이되지 않았다이

download: function (req, res) { 
    res.sendfile(req.path.substr(1)); 
}, 

같은 다른 GET 작업을이 문제를 해결하기 위해, 나는 로컬 호스트에서 404를 얻고있다 .

아무에게도이 문제를 어떻게 해결할 수 있습니까?

답변

1

grunt 문제가있는 것 같습니다. http://example.com/images/에 게재 된 파일은 실제로 .tmp/public/images /에 있으며 과음 태스크는 자산 폴더를 tmp 폴더와 동기화합니다.

프로젝트 폴더에서 grunt 명령을 실행하십시오. 작동하지 않는 경우 npm install grunt을 설치하십시오. 때때로 글로벌 npm이 설치된 불평이 작동하지 않습니다.

여기 https://stackoverflow.com/a/20363247/4322950 https://stackoverflow.com/a/20340354/4322950

+0

덕분에 친구를 도울 수있는 두 가지 다른 포스트입니다)하지만 난 선장-gridfs을 사용하여 문제를 해결하기 위해 관리,

또한 확인 툴툴 거리는 소리가 폴더 .tmp에 쓸 수 있도록. – ayon

관련 문제