테스트 사이트 - 개발 중인 베타 버전입니다

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

 

 

 

댓글 작성

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

로그인하기

댓글 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" />

 

어떻게 고치면 될까요?