CMS를 개발 중이며 사용자가 자신의 이미지, CSS 파일 등을 업로드 할 수있게하고 싶습니다. 리소스의 안전을 위해 애플리케이션 구조/배포 된 WAR 내에 업로드 된 파일을 저장하고 싶지 않습니다.Grails : 애플리케이션 외부에서 정적 컨텐츠 제공
Grails가 아닌 곳의 컨트롤러에서 Grails로 콘텐츠를 제공하는 가장 쉬운 방법은 무엇입니까?
CMS를 개발 중이며 사용자가 자신의 이미지, CSS 파일 등을 업로드 할 수있게하고 싶습니다. 리소스의 안전을 위해 애플리케이션 구조/배포 된 WAR 내에 업로드 된 파일을 저장하고 싶지 않습니다.Grails : 애플리케이션 외부에서 정적 컨텐츠 제공
Grails가 아닌 곳의 컨트롤러에서 Grails로 콘텐츠를 제공하는 가장 쉬운 방법은 무엇입니까?
;-) 확대됨에 많은 연구와 질문 후입니다, 나는 결정 데이터베이스의 정적 자원 (예 : 이미지)을 패키지화합니다. 이것의 장점은 다음과 같습니다
단점은 : 당신은/액세스 파일 시스템에있는 파일을 조작 할 수
이러한 단점이 있지만 해결책을 찾기로했습니다. 이것은 내가 그들을 다루는 방법입니다 :
을 내가 ETag를 사용 (documentation)를 만들고 이미지 서버 측 캐싱 EHCache는 (documentation)를 사용하여 스마트 브라우저 캐싱을 사용하고 있습니다. 새 이미지가 업로드 되 자마자 e- 태그가 변경되고 캐시가 지워 지므로 브라우저가 새로운 사본을 다운로드해야합니다.
지금까지 MySQL 데이터베이스의 성능 저하는 눈에 띄지 않았으며 성능은 매우 빠릅니다.자신의 게시물에 cdavis226에 의해 설명 된 바와 같이
적절한 도구를 통해 정적 컨텐츠를 제공하는 것이 올바른 방법이며, 모든 웹 서버는이를 달성 할 수있는 가능성을 제공합니다. Grails 애플리케이션에서이 컨텐트의 관리를 구현하려면 Config.groovy에서 정적 컨텐트의 대상을 구성 할 수있게하십시오.
, 당신은 ;-) 바퀴를 개혁하는 컨트롤러를 통해 파일 시스템에서 콘텐츠의 로딩을 구현하지 마십시오 또한 웹 서버가 훨씬 더나는 원격 파일 시스템 폴더를 가리키는 상황에 맞는 별명을 추가합니다 : 당신이 Grails의 기본 Tomcat 서버를 사용하는 경우
http://grails.1312388.n4.nabble.com/How-to-configure-context-xml-aliases-for-Tomcat-7-td4632149.html
이 솔루션은 작동합니다.
프로그래밍 방식으로이를 설정할 수있는 방법이 있습니까? –
정적 콘텐츠를 제공하는 데 프론트 엔드를 사용하지 않는 이유는 무엇입니까? Nginx처럼, 예를 들어 –
내가 당신의 문제를 이해하고 있는지 모르겠지만 ... 파일 시스템의 어떤 위치에서 이미지 (또는 다른 정적 인 내용)를 읽고 브라우저로 보내는 컨트롤러 메소드를 작성하기 쉽습니다. 프록시 같은 종류이지만 파일 시스템에서 전달. – nickdos