11diff --git a/build.js b/build.js
2- index 0c6ed8e2c0949c93978dd1a244baa9bf2448e9b8..08a9347cfdca06e6a97077ea4582c5b0922ecb2d 100644
2+ index 3734120d67745ff83b2df07fa5d0a40dcb92a69b..bd57f693ac2bd4555a12e7a5436fb9524789ef66 100644
33--- a/build.js
44+++ b/build.js
55@@ -35,7 +35,7 @@ function viaCache(cache, uri, extns) {
@@ -11,15 +11,24 @@ index 0c6ed8e2c0949c93978dd1a244baa9bf2448e9b8..08a9347cfdca06e6a97077ea4582c5b0
1111 let i=0, arr=toAssume(uri, extns);
1212 let abs, stats, name, headers;
1313 for (; i < arr.length; i++) {
14- @@ -43 ,6 +43 ,7 @@ function viaLocal(dir, isEtag, uri, extns) {
14+ @@ -46 ,6 +46 ,7 @@ function viaLocal(dir, isEtag, uri, extns) {
1515 if (abs.startsWith(dir) && fs.existsSync(abs)) {
1616 stats = fs.statSync(abs);
1717 if (stats.isDirectory()) continue;
1818+ if (shouldServe && !shouldServe(abs)) continue;
1919 headers = toHeaders(name, stats, isEtag);
2020 headers['Cache-Control'] = isEtag ? 'no-cache' : 'no-store';
2121 return { abs, stats, headers };
22- @@ -176,7 +177,7 @@ module.exports = function (dir, opts={}) {
22+ @@ -164,7 +165,7 @@ module.exports = function (dir, opts={}) {
23+ });
24+ }
25+
26+ - let lookup = opts.dev ? viaLocal.bind(0, dir + sep, isEtag) : viaCache.bind(0, FILES);
27+ + let lookup = opts.dev ? viaLocal.bind(0, dir.endsWith(sep) ? dir : dir + sep, isEtag) : viaCache.bind(0, FILES);
28+
29+ return function (req, res, next) {
30+ let extns = [''];
31+ @@ -179,7 +180,7 @@ module.exports = function (dir, opts={}) {
2332 catch (err) { /* malform uri */ }
2433 }
2534
@@ -29,7 +38,7 @@ index 0c6ed8e2c0949c93978dd1a244baa9bf2448e9b8..08a9347cfdca06e6a97077ea4582c5b0
2938
3039 if (isEtag && req.headers['if-none-match'] === data.headers['ETag']) {
3140diff --git a/build.mjs b/build.mjs
32- index 3ad14d45630a8627b93842a04a96465120d3f223..8451277c015b56a7d2cb99aaee3a318d9c0893dd 100644
41+ index 2f866d5216c951ec125f2044af070fa6b530e375..d5335bfbb16e23b57385c1a83226611e29c39093 100644
3342--- a/build.mjs
3443+++ b/build.mjs
3544@@ -35,7 +35,7 @@ function viaCache(cache, uri, extns) {
@@ -41,15 +50,24 @@ index 3ad14d45630a8627b93842a04a96465120d3f223..8451277c015b56a7d2cb99aaee3a318d
4150 let i=0, arr=toAssume(uri, extns);
4251 let abs, stats, name, headers;
4352 for (; i < arr.length; i++) {
44- @@ -43 ,6 +43 ,7 @@ function viaLocal(dir, isEtag, uri, extns) {
53+ @@ -46 ,6 +46 ,7 @@ function viaLocal(dir, isEtag, uri, extns) {
4554 if (abs.startsWith(dir) && fs.existsSync(abs)) {
4655 stats = fs.statSync(abs);
4756 if (stats.isDirectory()) continue;
4857+ if (shouldServe && !shouldServe(abs)) continue;
4958 headers = toHeaders(name, stats, isEtag);
5059 headers['Cache-Control'] = isEtag ? 'no-cache' : 'no-store';
5160 return { abs, stats, headers };
52- @@ -176,7 +177,7 @@ export default function (dir, opts={}) {
61+ @@ -164,7 +165,7 @@ export default function (dir, opts={}) {
62+ });
63+ }
64+
65+ - let lookup = opts.dev ? viaLocal.bind(0, dir + sep, isEtag) : viaCache.bind(0, FILES);
66+ + let lookup = opts.dev ? viaLocal.bind(0, dir.endsWith(sep) ? dir : dir + sep, isEtag) : viaCache.bind(0, FILES);
67+
68+ return function (req, res, next) {
69+ let extns = [''];
70+ @@ -179,7 +180,7 @@ export default function (dir, opts={}) {
5371 catch (err) { /* malform uri */ }
5472 }
5573
0 commit comments