Question about _site folder

I’m fairly new to Jekyll, I’ve been using it for a few months now. I’ve created a few sites so far and every time I use it, I learn something new. There’s one thing I can’t seem to understand and it’s kind of bugging me. I get how Jekyll processes the site and produces a static version in the _site folder, which I usually then upload to server via FTP (I don’t use GitHub Pages to host the sites). When I inspect the _site folder, the site looks like any other static site I created in the past using plain HTML, CSS and JS. I can see how the variables, includes, templates and other Jekyll files get converted into plain HTML in the finished site.

My question is, are there any hidden files in the _site folder that tell the server/browser for example to make URL pretty or any other permalink style as specified in the configuration file in the development setting? Because in any other scenario, if I make a static site and upload it to the server, I’d have to use htaccess file to control things like removing HTML extension from a URL. Where are things like that specified in the finished and processed Jekyll site? I’m just trying to understand how Jekyll works behind the scenes, especially as I’m not familiar with Ruby.

Thanks in advance!

there is no magical hidden file, what you see in _site is what you get. The permalink stuff just controls where the files are created. Some things like if you grab a posts url in your code have the permalink in them - so if it is not pretty then it probably has index.html in it…

I think it is normal for any server to serve a default document out of any directory, so if the path is /about/ without index.html at the end, the server will server index.html if it is in there.

If you do something like drop the final slash so it looks like it is extension-less, that probably has to still be configured on the server.

Not so sure about my last bit there about extension-less stuff so I deleted it.


Thanks, that was actually very helpful, I was looking at it all wrong. I did some more digging on the way permalinks work, it’s all making sense now. I only ever used htaccess file to manipulate link extensions (with some help from people more clever than me) and the way URLs were constructed in the finished Jekyll site did seem a bit magical as you have put it! But htaccess redirections and Jekyll permalinks are two very different things. Thanks again!