10
votes

I am developing jekyll-based site using grunt as my task manager. I am using grunt-contrib-connect to serve my files locally for development because of its livereload functionality. Those files are accessible in the browser at: http://localhost:8081/index.html

On my server, my files are located within a sub-directory, so have a base url prepended to all urls: http://path.to.server/mysite/index.html

I cannot figure out a way to simulate the base url on my local dev setup with grunt-connect. Without that, I don't know how to reference my css or js files without the urls being invalid on either the server or my dev box.

I know that jekyll's serve function can add a base url, but it does not give me the livereload functionality.

Any tips?

2
Did you ever find a solution?Mark Ni

2 Answers

2
votes

If you use Grunt Jekyll to run the Jekyll build commands it has a raw option that lets you append things to your _config.yml. That way you can effectively remove {{ site.baseurl }} for local development

jekyll: {
    development: {
        options: {
            config: '_config.yml',
            raw: 'baseurl: '
        }
    },
    production: {
        options: {
            config: '_config.yml'
        }
    }
},
0
votes

I answered a similar question at: https://stackoverflow.com/a/20864020/79790

Basically, you can set open in your livereload options to be the base URL for the server you want.