grunt-connect: serve files with base url added

grunt-contrib-connect, gruntjs, jekyll

Solution

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'
        }
    }
},

Problem

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?

Original source

Related problems