DavidI  블로그 글을 번역한 것입니다.

 

·         본문 링크 :https://community.idera.com/developer-tools/b/blog/posts/rad-server-mapping-web-properties-to-folders

RAD 서버 : 웹 속성을 폴더에 매핑하기

엠바카데로 아카데미 RAD 서버 과정에서 "델파이와 RAD서버로 서비스 기반 솔루션 설계-빌드-디버그-배포까지" , "C++빌더와 RAD서버로 서비스 기반 솔루션 설계-빌드-디버그-배포까지"과정들은 개발자들에게 애플리케이션의 리소스 엔드 포인트에서 JavaScript, HTML, 이미지, CSS 및 기타 웹 자산 파일과 코드를 통합하는 방법을 보여줍니다.

 

RAD 서버 구성 파일(emserver.ini) 섹션에는 [Server.PublicPaths]라는 레이블이 있는데 웹 콘텐츠의 공용 경로 설정에 대한 정보와 예제가 포함되어 있습니다. 서버 공용 경로 항목에는  등호 앞에 고유 한 임의의 이름이 있습니다 JSON 기반 항목은 컴퓨터 디렉토리를 RAD 서버 애플리케이션이 사용할 수 있는 웹 정보 타입에 매핑합니다. 각 항목에는 "경로": "값", 파일이 있는 디렉토리, 검색 시 전달할 기본 파일(옵션),  MIME 파일 형식 마스크 배열(옵션), 파일 확장자의 배열(옵션), 디렉토리에서 파일에 대한 옵션인 인코딩  문자 집합 이 있습니다.

 

예를 들어 [Server.PublicPaths] 섹션의 RAD 서버 구성 파일에 대한  경로 항목은 다음과 같습니다. 

 

Path1={"path": "images", "directory": "C:\\WebAssets\\images\\", "default": "index.html", "mimes": ["image/*"]}
Path2={"path": "content", "directory": "C:\\WebAssets\\content\\", "default": "index.html", "extensions": ["js", "html", "css"]}

 

C : \ WebAssets \ Content 및 C : \ WebAssets \ Images 디렉토리를 생성하십시오. 다음과 같은 HTML을 포함하는 index.html 파일을 C : \ WebAssets \ Content 디렉토리에 작성하십시오.

 

<!DOCTYPE html>

<html>

<head>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js">

</script>

<script>

$(document).ready(function(){

$("button").click(function(){

$.ajax({url: "/WebProperties", success: function(result){

$("#div1").html(result);

}});

});

});

</script>

</head>

<body>

<h2>RAD Server JS + Service</h2>

<button>Get RAD Server Content</button>

<P></p>

<div id="div1">RAD Server GET method result will appear here</div>

</body>

</html>

 

Get 및 GetItem 엔드 포인트 구현을 위해 다음 코드를 추가하십시오.(원본에는 C++ 소스도 있습니다.)

 

unit ResourceUnit;

 

// EMS Resource Module

 

interface

 

uses

  System.SysUtils, System.Classes, System.JSON,

  EMS.Services, EMS.ResourceAPI, EMS.ResourceTypes;

 

type

  [ResourceName('WebProperties')]

  TWebPropertiesResource1 = class(TDataModule)

  published

    procedure Get(const AContext: TendpointContext;

const ARequest: TEndpointRequest; const AResponse: TEndpointResponse);

    [ResourceSuffix('{item}')]

    procedure GetItem(const AContext: TendpointContext;

const ARequest: TEndpointRequest; const AResponse: TEndpointResponse);

  end;

 

implementation

 

{%CLASSGROUP 'System.Classes.TPersistent'}

 

{$R *.dfm}

 

procedure TWebPropertiesResource1.Get(const AContext: TendpointContext;

const ARequest: TEndpointRequest; const AResponse: TEndpointResponse);

begin

  Aresponse.Body.SetValue(TJSONString.Create(

    'WebProperties get method called at ' + TimeToStr(Now)), True)

end;

 

procedure TWebPropertiesResource1.GetItem(const AContext: TEndpointContext; const ARequest: TEndpointRequest; const AResponse: TEndpointResponse);

var

  LItem: string;

begin

  LItem := ARequest.Params.Values['item'];

  AResponse.Body.SetValue(TJSONString.Create('WebProperties ' + LItem), True)

end;

 

procedure Register;

begin

  RegisterResource(TypeInfo(TWebPropertiesResource1));

end;

 

initialization

  Register;

end.

 

RAD 서버 프로젝트를 컴파일하고 URL에 대해 localhost : <port #> / Content를 사용하여 브라우저 열기 버튼을 클릭하십시오. 브라우저에 index.html 파일이 나타납니다.

 

pastedimage1584125485308v1.png-320x240.png

 

버튼을 클릭하여 Get 엔드 포인트를 호출하고 결과를 확인하십시오.

 

pastedimage1584125512498v2.png-320x240.png

RAD Server 엠바카데로 과정에 등록하여 3 시간 이상의 강의를 보고 과정 노트를 읽고 예제 프로젝트를 해 볼 수 있습니다. RAD Server, 델파이 또는 C++ 빌더의 Enterprise, Architect 또는 시험판이 필요합니다.

 

pastedimage1584125591523v3.png-320x240.png

 

pastedimage1584125611808v4.png-320x240.png

 

 

번호 제목 글쓴이 날짜 조회 수
공지 [DelphiCon 요약] 코드사이트 로깅 실전 활용 기법 (Real-world CodeSite Logging Techniques) 관리자 2021.01.19 15442
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 13962
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 16499
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 22055
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 23268
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 18923
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 39257
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 174713
823 iOS 64bit 배포 시 ITMS-90092 오류 대응 [1] file Humphery 2015.04.09 1557
822 [업데이트][10.2 도쿄][릴리즈 1] 10.2 도쿄 - 릴리즈 1이 출시되었습니다. 험프리 2017.08.09 1550
821 [XE8] 모바일 튜토리얼 무료 다운로드(영문), 총 364페이지 관리자 2015.07.09 1545
820 [안드로이드/iOS] 이미 배포(Deployment)된 파일 업데이트 하기 험프리 2016.03.31 1540
819 RFID 리더(한미IT RF Prisma) 연동하기 - 델파이에서 JAR 이용 [1] 험프리 2017.12.19 1539
818 [FireDAC Skill Sprints] 2. FireDAC으로 DBMS 사용 내역 추적, 모니터링 하기 Humphery 2015.03.07 1538
» RAD 서버 : 웹 속성을 폴더에 매핑하기 file 김원경 2020.03.17 1538
816 [기술문서] Delphi 코딩 스타일과 아키텍처(Delphi 2009의 언어 기능 리뷰) 관리자 2014.09.16 1536
815 [써드파티 컴포넌트/툴/플러그인] XE7을 지원하는 컴포넌트 정리 관리자 2014.12.23 1535
814 [XE7] iOS 시뮬레이터 배포 시 'Please specify exact device preset UUID.' 오류 대응 Humphery 2015.02.26 1535
813 이미지와 애니메이션 효과 적용하기: 파이어몽키 코스북 8장 file 관리자 2014.07.23 1528
812 HD 애플리케이션 만들기(파이어몽키 활용): 파이어몽키 코스북 5장 file 관리자 2014.07.17 1526
811 [안드로이드] 배포파일, 아이콘, 스플래쉬 등이 잘 배포되었는지 확인하기 file 험프리 2015.11.11 1524
810 [XE7] 안드로이드 5.0(롤리팝) 지원 핫픽스 [2] Humphery 2015.01.12 1510
809 이 달의 기술자료 - 2021년 09월 file 험프리 2021.08.26 1507
808 [업데이트][HotFix] VCL BMP Buffer Overflow hotfix(취약점 보안패치) Humphery 2014.08.20 1505
807 [FireDAC Skill Sprints] 3. 캐쉬를 이용한 업데이트와 자동증가필드(Identity) 적용 Humphery 2015.03.07 1495
806 [FireDAC Skill Sprints] 4. ArrayDML로 30배 빠르게 데이터 입력하기 Humphery 2015.03.11 1493
805 바이너리 폼파일(*.dfm)을 텍스트 폼파일로 변경하는 도구 Humphery 2015.09.15 1485
804 [발표자료] REST API 웹서비스 연동 관리자 2017.05.29 1474