diff --git a/lib/async-tasks.js b/lib/async-tasks.js
index 208ebe729..fa337fa64 100644
--- a/lib/async-tasks.js
+++ b/lib/async-tasks.js
@@ -37,6 +37,10 @@ module.exports = [
         step: "Starting the Server",
         fn: async.startServer
     },
+    {
+        step: "Adding serve static middlewares",
+        fn: async.addServeStaticMiddleware
+    },
     {
         step: "Starting the HTTPS Tunnel",
         fn: async.startTunnel
diff --git a/lib/async.js b/lib/async.js
index ef1028ff4..5336daa5a 100644
--- a/lib/async.js
+++ b/lib/async.js
@@ -182,6 +182,18 @@ module.exports = {
             }
         });
     },
+    /**
+     * @param bs
+     * @param done
+     */
+    addServeStaticMiddleware: function (bs, done) {
+        bs.options
+            .get("serveStatic")
+            .forEach(function (dir) {
+                bs.addMiddleware("*", utils.serveStatic(dir));
+            });
+        done();
+    },
     /**
      * @param {BrowserSync} bs
      * @param {Function} done
diff --git a/lib/default-config.js b/lib/default-config.js
index 2c6176070..7d59d72d9 100644
--- a/lib/default-config.js
+++ b/lib/default-config.js
@@ -87,6 +87,12 @@ module.exports = {
 
     middleware: false,
 
+    /**
+     * Add additional directories from which static
+     * files should be served.
+     */
+    serveStatic: [],
+
     /**
      * Enable https for localhost development. **Note** - this is not needed for proxy
      * option as it will be inferred from your target url.
diff --git a/package.json b/package.json
index b380accde..fb9b4d2fe 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
 {
   "name": "browser-sync",
   "description": "Live CSS Reload & Browser Syncing",
-  "version": "2.7.13",
+  "version": "2.8.0",
   "homepage": "http://www.browsersync.io/",
   "author": {
     "name": "Shane Osbourne"
diff --git a/test/specs/e2e/e2e.options.serveStatic.js b/test/specs/e2e/e2e.options.serveStatic.js
new file mode 100644
index 000000000..737db1f07
--- /dev/null
+++ b/test/specs/e2e/e2e.options.serveStatic.js
@@ -0,0 +1,36 @@
+"use strict";
+
+var browserSync = require("../../../index");
+
+var request     = require("supertest");
+var assert      = require("chai").assert;
+var page        = require("fs").readFileSync("test/fixtures/index.html", "utf-8");
+
+describe("E2E `serveStatic` option", function () {
+
+    var bs;
+
+    before(function (done) {
+        browserSync.reset();
+        var config = {
+            logLevel: "silent",
+            online:    false,
+            serveStatic: ["test/fixtures"]
+        };
+        bs = browserSync(config, done).instance;
+    });
+
+    after(function () {
+        bs.cleanup();
+    });
+
+    it("can serve static files regardless of running mode", function (done) {
+        request(bs.server)
+            .get("/index.html")
+            .expect(200)
+            .end(function (err, res) {
+                assert.equal(res.text, page);
+                done();
+            });
+    });
+});