lvivski / start

Sinatra inspired web development framework for Dart

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Static serve of packages

collinalexbell opened this issue · comments

Hello. I have a link to the packages folder in my web folder. I am not sure where pub get actually stores packages, but I don't think a static web serve actually serves these packages. TLDR Packages aren't getting served correctly.

There's a bug in Dart's VirtualDirectory related to soft links (pub creates links for packages). I already work on that bug, meanwhile I suggest you to used Start version 0.1.3

I have the same problem. Fallback to version 0.1.3 is no solution for me. Is there an estimated time of solution for this problem?

My current solution is to build JS files on the fly, and then check everything in the browser. Almost good enough, if your browser supports source maps (I think all modern ones do). So i've set up a WebStorm file watcher to rebuild JS files, when I change my client-side dart files and then use Chrome to check everything.

commented

How about doing something like:

  void static(path, jailRoot) {
    _staticServer = new VirtualDirectory(path)
      ..allowDirectoryListing = true
      ..followLinks = true
      ..errorPageHandler = _send404
      ..jailRoot = jailRoot;

Or just changing _staticServer to staticServer. Then the security could be handled by the developer with program args. This seems a little hacky but at least the example could work out of the box.

Wow, thanks. jailRoot wasn't available in earlier versions, will add it to the next release asap.

commented

Cool. Yea looking at https://code.google.com/p/dart/issues/list, I think the dart team might fix the VirtualDirectory symlink thing eventually. There's a couple of tickets open for it.

Here's the one where they discuss and implement jailRoot: https://code.google.com/p/dart/issues/detail?id=14196

Agree, that was a really strange issue, I do understand the security implications, but dart uses symlinks a lot.