Index: lib/src/server/server.dart |
diff --git a/lib/src/server/server.dart b/lib/src/server/server.dart |
index 555bcedf1ca60a23e51e3f0324e50589c6738530..1c563ca8a8870d6472ad58f29a2a259805aec8f8 100644 |
--- a/lib/src/server/server.dart |
+++ b/lib/src/server/server.dart |
@@ -254,17 +254,19 @@ class DevServer { |
var out = new Directory(outDir); |
if (!await out.exists()) await out.create(recursive: true); |
- var mainHandler = |
+ var generatedHandler = |
shelf_static.createStaticHandler(outDir, defaultDocument: _entryPath); |
var sourceHandler = shelf_static.createStaticHandler(compiler.inputBaseDir, |
serveFilesOutsidePath: true); |
var topLevelHandler = (shelf.Request request) { |
var path = request.url.path; |
- if (path.endsWith('.dart')) { |
- return sourceHandler(request); |
- } else { |
- return mainHandler(request); |
+ // Prefer generated code |
+ var response = generatedHandler(request); |
+ if (response.statusCode == 404) { |
Jennifer Messerly
2016/01/27 20:50:02
this feels a little bit off wrong in the architect
|
+ // Fall back on original sources |
+ response = sourceHandler(request); |
} |
+ return response; |
}; |
var handler = const shelf.Pipeline() |