js, css 파일 URL에 filemtime 적용하기 (HOOK 이용) 정보
js, css 파일 URL에 filemtime 적용하기 (HOOK 이용)첨부파일
본문
jihan001 님이 github 에서 제안해 주신 내용대로 만들었습니다. ( HOOK 이용 )
https://github.com/gnuboard/gnuboard5/issues/187
첨부파일 적용시 그누보드5에 적용된 테마 또는 스킨 css, js 파일명 끝에 filetime 시간으로 파라미터가 붙게됩니다.
사용방법은 첨부파일을 압축을 해제하여 그대로 덮어쓰기 하면 됩니다.
====== 파일수정내역 =======
2022-11-30 jihan006 님이 알려주신 내용을 참고하여 두번 실행되었던 것을 한번으로 실행되게 코드 수정
2022-12-19 jihan006 님이 알려주신 내용을 참고하여 script, link 태그에 지정한 속성이 제거되는 문제와 파일 우선 순위가 0이 되는 오류 수정
14
댓글 전체

hook이 중복 등록되는 문제가 있습니다.
`add_hooks()` 메소드를 static으로 변경하고,
7라인을 변경하여 중복 등록을 해결할수 있습니다.
```
G5_MANAGE_STATIC_FILES();
// 아래로 변경
G5_MANAGE_STATIC_FILES::add_hooks();
```
해당 코드 수정했습니다.
1. script, link 태그에 지정한 속성이 제거됨
script 태그의 defer, async 속성이나 link 태그에 crossorigin, disabled 등
check_skin_css(), check_skin_js() 함수에서 js, css 파일의 경로만 가져다가 태그를 새로 만들어 반환하기 때문에 이러한 속성들이 모두 제거되는 문제가 있습니다.
2. 파일의 우선 순위 값을 0으로 변경시켜 버림
$return_jss[] = array(0=>0, 1=>'<script src="'.$this->static_filetime($match[0]).'"></script>');
이처럼 원래의 order 값인 $js[0]을 사용하지 않고 0=>0 으로 처리되어 order 값을 모두 0으로 바꿔 반환해버립니다. css도 마찬가지.
해당 오류를 수정하여 다시 적용했습니다~
extend 파일 외에도 다른 파일들이 좀 섞여있네요.
그리고 2022-11-30 수정하셨던 코드가 다시 이전 상태로 돌아갔네요.
다시 수정했습니다.
안녕하세요. 꼭 필요했던 플러그인을 만들어주셔서 감사합니다. ^^
[그누보드/plugin/jquery-ui/datepicker.php] 에서 외부 css를 불러오는데, '//~'로 주소를 설정하고 있습니다.
이 경우 본 확장이 'href'를 제대로 붙여주지 못하는 오류가 생깁니다:
(소스)
add_stylesheet('<link type="text/css" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/themes/base/jquery-ui.css" rel="stylesheet" />', 0);
-> (렌더링)
<link type="text/css" //ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/themes/base/jquery-ui.css rel="stylesheet" />
어떻게 고치면 될까요?