First I’d like you to know that I did search the forum for solution and basic answers that could answer my question. Unfortunately they were to advanced for so I’m here to to ask for help.
I want to make sure that the returning visitor always sees the newest version of my website.
I don’t do anything special aside from using the Dropbox integration for content. How do I always serve returning customers the newest html, css and js.
I can understand there are different approaches, I would like the most simple one.
So as per your suggestion I would use: <?= css('assets/dist/css/main.min.css' . (filemtime('assets/dist/css/main.min.css') ? '?' . filemtime('assets/dist/css/main.min.css') : '')) ?>
Questions 1: <?= css> is this correct? Shouldn’t this be <?php ?
Question 2:
I don’t have a minimised version, can I just remove the ‘min’ part?
Question 3:
Why do you repeat the filetime(‘asset/dist/css/main.min.css’) 3 times?
<?= css() ?> is just a short form of <?php echo css() ?>. Many devs prefer the shorthand version, makes it easier to see echo statements in the code, less typing …
Question 2:
Yes, of course.
Question 3:
That is a short if statement using the ternary operator. It checks for filemtime()first, before adding it to the file.
Question 1: OK!
Question 2: OK!
Question 3: OK! read the ternary operator faq. So if there is a css file main.css then print that file or print the same file? I don’t see any difference in the string “filemtime(‘assets/dist/css/main.min.css’)”
No, it does not check if the file exists but if filemtime('assets/dist/css/main.min.css') returns true, if so, the modification date is added to the css file, in case it returns false, nothing is added. It’s a security measure to prevent errors.