묘한 질문을 좀 드려야 겠습니다.
저희가 PC용 앱을 개발하고 있는데, 자동 업데이트를 위해서 간단한 웹페이지를 운영합니다.
예를 들면 다음과 같은 템플릿 페이지가 있습니다.
index.html
-----------------------------------------
{AppName} 다운로드: https://domain.com/AppFile.exe
{AppName} 설치 중 문제가 발생하면 다음 연락처로 연락주십시오.
{Contact_Mail}
-----------------------------------------
문제는 저희가 PC용 앱을 개발할 때 마다, 저 템플릿 페이지를 일일히 수정해야 하는 번거로움이 있다는 겁니다.
(물론, 실제 템플릿 페이지는 변수도 훨씬 많고 복잡합니다.)
DB를 이용해서 php나 asp.net 등으로 처리하면 간단한 일이겠지만..
작업을 간단하게 처리하기 위해서 정적인 html 페이지로 국한시키려고 합니다.
(php나 asp.net 같은 것이 들어가면, 웹 서버 설치하는 것도 일이라..)
예를 들면, index.html 파일이 있는 곳에 data.ini 같은 파일이 있고, data.ini 파일은 다음과 같이 구성되어 있습니다.
data.ini
-------------------------------------
{AppName}=App Name 1
{Contact_Mail}=*******@******.com
-------------------------------------
이 때, index.html 파일이 열릴 때, 예를 들면 자바스크립트 같은 것이 data.ini 파일을 읽어서 변수를 바꾸어 출력해 주는 겁니다.
이렇게 하면 저희는 data.ini 파일만 수정해서 배포하면 되니까 무척 작업이 편리하겠죠.
(data.ini 를 parsing 하는 걸 물어보는 건 아닙니다. 그건 할 수 있습니다.)
검색을 좀 해 보니, 로컬 클라이언트의 파일을 읽어와서 처리하는 것은 많은데.. 웹 서버에 이미 존재하는 다른 파일을 불러오는 예제를 못 찾겠어서 질문 드리는 겁니다.
아니면, 자바스크립트 말고 다른 방법이라도 좋습니다.
아이디어 부탁합니다. ^^
p.s. php, asp.net 같은 것 이용하라는 권장사항은 사양합니다. php, asp.net 같은 것을 사용하려면 지금대로 일일히 수정하는 것이 더 일의 양이 적습니다.
asp, php, jsp 처럼 server side 언어를 쓰셔야 되요
html은 서버에 있는 파일을 못 읽는다..
javascript가 읽을 순 없나요? javascript가 읽을 수 있으면 어떻게든 처리할 수 있을 것 같아서요.. ㅠ.ㅠ
템플릿 페이지 해당 위치에 해당 변수 표시하는 JS 파일 하나
로 구성해
변수 저장하는 JS 파일만 수정 배포하시면 될 것 같은데요.
<!doctype html>
<html lang="en">
<head>
<script type="text/javascript" src="변수.js"></script>
<script type="text/javascript" src="표기.js"></script>
<title>템플릿</title>
</head>
<body onload="표기함수()">
</body>
</html>
역시 방법이 있었습니다. ^^
고맙습니다!
--- test.html ----
<!doctype html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>테스트</title>
</head>
<body></body>
<script language="javascript" src="test.ini"></script>
<script language="javascript">
let Templete = `
{AppName} 다운로드: https://domain.com/AppFile.exe<br>
<br>
{AppName} 설치 중 문제가 발생하면 다음 연락처로 연락주십시오.<br>
{Contact_Mail}<br>
`;
document.body.innerHTML = setTemplete(Templete);
</script>
</html>
--- test.ini ---
let mapObj = {
"{AppName}":"테스트프로그램",
"{Contact_Mail}":"어쩌고@저쩌고.com"
};
function setTemplete(str){
let re = new RegExp(Object.keys(mapObj).join("|"),"gi");
return str.replace(re, function(matched){
return mapObj[matched];
});
}
고맙습니다~
서버 로직 뒷단에는 db도 있고, 종류에 따라서는 그 사이트에 커스텀된 다른 솔루션들과 연계되는것들도 있습니다.
특정 패턴에 맞춰서 커스텀하는 것은 가능하겠지만 html 을 고치기 위해 jsp, php, asp까지 고쳐주는 프로그램 만드는것은 불가능이라고 보시는게 맞습니다.
html 바로 보내는 경우도 있긴 한데(정적 html 페이지) 매우 드뭅니다. 특히 cms로 돌리는 사이트들은 db에다 출력할 html 넣어두기도 합니다.
거기파일 웹에서 바로수정 가능하니깐 바로 연결해서 사용하시면
되지 않을까요?
C# 이면 파일 읽어와서 내장 브라우져에 바로 뿌리면 되고
Html 파일자체를 보여주는거면 깃허브 젠킨스 되도록해서 올리면 될듯합니다