faassen / bowerstatic

Serve Bower-managed static resources using WSGI
BSD 3-Clause "New" or "Revised" License
49 stars 17 forks source link

Allow publisher_signature to have embedded path components (a prefix) #60

Open Preston-Landers opened 9 years ago

Preston-Landers commented 9 years ago

Hello, I'm trying to support a global URL prefix for my app, so that all URLs have a prefix like /myapp if needed.

If the prefix is enabled, I'm setting the publisher signature to something like: myapp/bowerstatic If there is no prefix enabled the signature is just bowerstatic.

So when I do this, my URLs to bower resources are getting generated correctly, but the publisher tween fails to recognize and serve them. The problem appears to be that in publisher.py at line 22 it calls request.path_info_peek. This only returns the first component of the URL, so it only returns myapp when my prefix is enabled. This fails to match the publisher signature of myapp/bowerstatic so it fails to serve the file.

It would be nice if it could recognize a multi-part signature is in use and match the whole thing. This PR allows the publisher signature to have embedded slashes (path components).

My app is a mixture of Pyramid and a custom/legacy framework, but in theory that shouldn't matter here.

faassen commented 9 years ago

I'm happy to accept this pull request but it needs some tests. I'm especially curious about the [1:] in the code -- does this have something to do with an initial slash? It'd be good if the tests demonstrated the multiple cases.

Preston-Landers commented 9 years ago

Yes, it was getting rid of the initial slash. I'm pretty sure there will always be a slash there but I can verify that or add some conditional logic.