2017-04-04 1 views
1

json 파일을 제공하는 로컬 고속 서버가 있습니다. 또한 로컬 폴더 내에 많은 이미지 파일이 있습니다. 이미지 경로는 DOM에 표시하려는 json 객체의 일부입니다. 그러나 나는 사용할 수없는 응답의 일부로 이러한 이미지 경로의 문자열 표현을 얻습니다. 로컬 서버에서 프론트 엔드로 로컬 이미지를 서버하는 가장 좋은 방법은 무엇입니까?json 응답에서 실제 이미지 경로 가져 오기

문제의 그림 : enter image description here

내 서버 측 설정 :

app.use(express.static(path.join(__dirname, 'public'))) 
 
app.use(express.static(path.join(__dirname, 'server/img')))

내 JSON 파일

{ 
 
    "Images": [{ 
 
    "title": "First Block", 
 
    "images": ["server/img/bijay.jpg", "server/img/dance.png", "server/img/ocean.jpg"] 
 
    }, {obj2}, {obj3}, {obj4}] 
 
}

내 클라이언트 측 코드가 인쇄 할 이미지

<ul> 
 
    <li ng-repeat="obj in objArray"><img ng-src="{{obj.images[0]}}"></li> 
 
</ul> 
 
// just testing first image

내 폴더 구조 :

images are inside img folder. not shown to save space

임 연령대는 img 폴더 안에 있습니다.

장소는 '공공'폴더에있는 이미지 :하지 공간

@Tolsee의 의견을 바탕으로
+0

주어진 요소가 이미지의 절대 경로를 나타내는 것처럼 보입니다. 단순히 'src'를 사용하여 렌더링 할 수 있습니다. 절대 URL. – Tolsee

+0

그러나 (localhost : //server/img/xyz.jpg)에 대한 404 상태 응답을 제공합니다 ... 나는 절대 경로를 사용하여 서버의 파일에 액세스하는 데 문제가 있다고 생각합니다. –

+0

먼저 URL을 올바르게 작성해야합니다 ..Like http : //localhost/server/img/xyz.jpg – Tolsee

답변

2

마지막으로 많은 재고가 있은 후에 해결책을 찾았습니다.

서버의 '정적'폴더를 'server/img'로 정의했습니다. 그러나 json 객체 내부에서 이미지 파일의 절대 경로를 다시 지정했습니다. 내가해야 할 일은 충돌을 해결하기 위해 ' server/image/ imgFileName.jpg'입니다.)

1

를 저장주기 위해 여기에 도시되어있다.

let app = express(); 
app.use(express.static(path.join(__dirname, 'public'))); 

이미지는 다음과 같은 URL을 사용할 수 있습니다 : 사용자의 명시 응용 프로그램에서 다음 (/public/img/dance.png) 는 다음 줄을 추가

localhost:port/img/dance.png 

당신은 단지 봉사 할 수 있었다를/server/img를 입력 한 다음 다음을 사용하십시오.

let app = express(); 
app.use(express.static('/server/img')); 

localhost:port/dance.png 

프로젝트 구조에 따라 일부 구성이 필요할 수 있습니다.

+0

아, 알겠습니다. 나는 '공개'폴더에서 정적 파일을 제공하는 동일한 구성을 가지고 있었지만 이미지는 '서버'폴더 안에있었습니다. 그래서 app.use (express.static ('/ server/img') 줄을 추가하는 것으로 충분할 것 같습니다.) 지금 확인하겠습니다. –

+0

마치 내가 에뮬레이션 할 필요가있는 공용 폴더에 이미지를 넣을 수 없습니다. 이미지는 서버에서 가져옵니다. –

+0

이미지를 검색하는 데 사용하는 URL은 무엇입니까? 여전히 localhost/server/img를 사용하여 액세스하려면 app.use ('/ server/img', express.static ('/ server/img')))로 변경해야합니다. –

관련 문제