2026, 새로운 도약을 시작합니다.

js, css 파일 URL에 filemtime 적용하기 (HOOK 이용)

filetime적용.png

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이 되는 오류 수정

버전 정보

테스트한 버전 5.4.3
호환 가능 버전 5.4.3

첨부파일

filetime적용.png (41.3 KB)
0회 2022-06-14 11:06
statics_filetime.zip (1.3 KB) 144회 2022-12-20 10:05
|

댓글 17개

오 감사합니다!! 매번 직접 추가한 css 랑 js 에만(플러그인제외) 수정날짜 적용해서 캐시 안먹게 하고 있었는데ㅠㅠ
아 넵. 2022-06-14 11:48:56 이전에 다운 받으신 7명 분들은 파일에 문제가 있었으니, 다시 받아서 적용해 주세요.
아이고 감사합니다! 잘쓰겠습니다
오우 이거 굉장히 유용하네요!
오우 항상 감사합니다 잘 사용하겠습니다.
감사합니다...^^
아미나빌더에서는 안되는 부분도 있네요
좋은 정보 감사합니다.
[http://sir.kr/data/editor/2211/09c92ecfb6e880903f1a3bd17332316f_1669700113_2793.png]
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" />

어떻게 고치면 될까요?

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기
🐛 버그신고