In the website I am seeking to rebuild, the code below displays the image of a map. If I click on the image, an extra large version of the map is displayed in another page. (To be clear: the first image is not simply a thumbnail. )
<p><a href="uploads/images/climate/tfulllarge.jpg"><img style="margin: 8px auto; display: block;" src="uploads/images/climate/tfullsmall.jpg" alt="tfullsmall" width="92%" /></a></p>
This code will not work in Kirby, even if I paste it in with adjusted file paths. It produces an error page. Neither can the panel editor create the scenario I have described.
Can someone point me to how to do this, please?
If your files are in a static folder somewhere (i.e. not managed through the Panel), it might be as straightforward as prepending a slash to ensure the URL is absolute, not relative – in case your
uploads folder is a direct child of your Kirby install’s root folder:
<a href="/uploads/images/climate/tfulllarge.jpg"> (the code you posted above would always try to find that file in a subfolder of the URL currently displayed in the browser).
If you upload your images via the Panel (i.e. they are located in the same folder as the
.txt content file of the page they belong to), you’d have to use the
$file->url() method in your template; for example:
<a href="<?= page()->file('tfulllarge.jpg')->url() ?>"> to display a URL of the file
tfulllarge.jpg. That’s because files inside Kirby’s content structure are not accessible directly; instead, the
url() method creates a temporary copy in the
/media folder and returns the URL to that.