생활코딩으로 공부하던 중 리팩토링 과정에서 리스트 내의 li 태그를 아래와 같이 만들게 되었다
function templateList(filelist) { var list = "<ul>";
for (let i = 0; i < filelist.length; i++) {
list += `<li><a href="/?id=${filelist[i]}">${filelist[i]}</a></li>`;
}
list += "</ul>";
return list;
}
a 태그의 href 주소로 쿼리로 된 경로를 만들어 주는 코드인데
쿼리 앞에 / 슬래시를 못보고 못쳤더니 create를 누르고 목록을 누르면
새 페이지의 pathname 인 / 가 아닌 이전 페이지의 pathname 인 /create 를 가진채로
쿼리가 붙게 되고 create 폼이 사라지지 않게 되었다
URL 을 부분별로 해석하면 아래와 같다
scheme:[//[user[:password]@]host[:port]][/path][?query][#fragment]
pathname : / + (임의의 path) !! 슬래시가 꼭 필요하다
포트앞에는 : 가 반드시 필요하고, 쿼리 앞에는 ? 가 반드시 필요하다 마찬가지로 경로앞에는 /를 넣어야 한다
/ 슬래시는 url 에서 꼭 필요한 것이고, 조건문을 사용 시 더더욱 경로를 확실히 하지 않으면
문제가 생길 수 있으니 경로에 / 가 빠지지 않도록 조심하자
url 에서 기본적으로 루트로 쓰이는 /는 경로 설정시 항상 적어줘야 문제가 생기지 않는다
'개발 노트 > 오답 노트' 카테고리의 다른 글
소스트리 클론 생성 시 경로가 빈 폴더가 맞는지 확인하자 (0) | 2022.06.28 |
---|---|
깃허브 소스트리 사용 시 저장소 연동 인증 문제 (0) | 2022.06.28 |
배열과 문자열의 인덱스를 비교 시 빈 string을 사용하자 (0) | 2022.06.27 |
소수 판별하기, 범위 내 소수 구하기 (0) | 2022.06.18 |
[c++] 벡터, string, 배열 관련해서 주의할 점 (0) | 2022.06.18 |
댓글