Smarty를 사용하고 있으며 브라우저 캐싱도 사용하고 있습니다. 이미지가 수정되면 (aviary를 사용하여) 'scr'속성에 표시하고 싶을 때마다 브라우저는 이미지가 수정 될 때마다 이미지를 다시로드합니다. PHP에서 filemtime()을 사용하여이 작업을 수행 할 수 있음을 알고 있으므로 파일이 마지막으로 변경된 시간을 표시하는 Unix 타임 스탬프를 추가합니다. 하지만 이것을 구현하려고하면 제대로 작동하지 않습니다.Smarty 3 마지막으로 이미지 수정 추가
<img id="PrvImage" class="js_lightbox" data-id="42" data-image="https://example.com/content/uploads/photos/2017/01/c2d1c2547b0c3feec3f86af7a6484832.jpg" data-context="album" src="https://example.com/content/uploads/photos/2017/01/c2d1c2547b0c3feec3f86af7a6484832.jpg" alt="alt">
는 내가 원하는 것은 이것이다 :
나는 현재이이
HTML을 생성하는 .tpl 파일의 원본 코드는 다음과 같습니다<img id="PrvImage" class="js_lightbox" data-id="42" data-image="https://example.com/content/uploads/photos/2017/01/c2d1c2547b0c3feec3f86af7a6484832.jpg" data-context="album" src="https://example.com/content/uploads/photos/2017/01/c2d1c2547b0c3feec3f86af7a6484832.jpg?=1483848592" alt="alt">
:
<img id="PrvImage" {if $profile['user_picture_id']} class="js_lightbox" data-id="{$profile['user_picture_id']}" data-image="{$profile['user_picture']}" data-context="album" {/if} src="{$profile['user_picture']}" alt="{$profile['user_fullname']}">
{$ profile [ 'user_picture']}는 파일의 경로입니다. 그래서 .tpl 파일에 관련되어 PHP 파일이 추가 :
$filemtime = filemtime($profile['user_picture']);
// assign variables
$smarty->assign('filemtime', $filemtime);
그리고 나는이에 .tpl 수정 :
<img id="PrvImage" {if $profile['user_picture_id']} class="js_lightbox" data-id="{$profile['user_picture_id']}" data-image="{$profile['user_picture']}" data-context="album" {/if} src="{$profile['user_picture']}?={$filemtime}" alt="{$profile['user_fullname']}">
생성
<img id="PrvImage" class="js_lightbox" data-id="42" data-image="https://example.com/content/uploads/photos/2017/01/c2d1c2547b0c3feec3f86af7a6484832.jpg" data-context="album" src="https://example.com/content/uploads/photos/2017/01/c2d1c2547b0c3feec3f86af7a6484832.jpg?=" alt="alt">
을 디버깅 후 다음 오류가 발생합니다.
filemtime() :/var/www에 https://example.com/content/uploads/photos/2017/01/c2d1c2547b0c3feec3f86af7a6484832.jpg의 stat 실패 내가 뭘 잘못
그리고 난이 마지막으로 수정 된 시간을 표시하는 방법을 어떻게해야합니까 : (164)
내 질문에 줄에 /vhosts/qreets.nl/httpdocs/profile.php?
유닉스 타임 스탬프가 2038 년에 문제가 될 것입니다. 그래서 더 좋은 대안이 있습니까?