-
-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
IsADirectoryError when accessing folder with a static route #921
Comments
Please make sure |
Using an absolute path does not solve the issue. import asyncio
from aiohttp import web
app = web.Application()
app.router.add_static("/static", "/Users/Steffen/Desktop/static")
web.run_app(app, port=8888)
|
Gotcha! |
I think directory indexing is not needed but wouldn't it be better if the server would respond with a correct HTTP response? Sending 200 and then the headers and half a body of a 500 error does not seem right to me. |
Agreed. |
Tasks to close the issue (discussed with @asvetlov): If folder is accessed:
|
If we want to access a static file dir, it should return `Forbidden (403)` by default. Related: aio-libs#921
XXX: need for a response to return proper html Related: aio-libs#921
Also I now return in place, instead of creating variable and returning later, I am not a fan of returning somewehere inside a method, though if we tried to return `ret` at the end as before, but I guess it's the most clean pattern to do this. This is because we have to conditional blocks, either of which can return from the method. If first condtitonal creates `ret` variable, later conditional may just raise `HTTPNotFound` which we do not want. Though, I do not want to check that `ret` is populated either. Thus return in place. Related: aio-libs#921
…quested folder Related: aio-libs#921
Related: aio-libs#921
Related: aio-libs#921
Related: aio-libs#921
* Add `show_index` flag to StaticRoute Related: #921 * Accessing static dir, should return 403 by default If we want to access a static file dir, it should return `Forbidden (403)` by default. Related: #921 * WIP: if allowed - return directory's index, otherwise - 403 XXX: need for a response to return proper html Related: #921 * Return directory index list if we allow to show it Also I now return in place, instead of creating variable and returning later, I am not a fan of returning somewehere inside a method, though if we tried to return `ret` at the end as before, but I guess it's the most clean pattern to do this. This is because we have to conditional blocks, either of which can return from the method. If first condtitonal creates `ret` variable, later conditional may just raise `HTTPNotFound` which we do not want. Though, I do not want to check that `ret` is populated either. Thus return in place. Related: #921 * Test if correct statuses are returned if we allow acces index or not Related: #921 * Prettier directory output - Better method name - More human readable output (newlines) - Title is shown as relative path to static directory and not as posix path - Show directories with slash at the end of the name * Remove unnecessary comment * Update docs And fix a minor typo * Check of html content is added for the response page with a directory index Related: #921 * Test of accessing non-existing static resource added Related: #921 * 403 Forbidden returned if the permission error occurred on listing requested folder Related: #921 * show_index parameter usage of app.router.add_static method documented Related: #921 * Import order fixed Related: #921 * Make directory index sorted so stable for tests Related: #921 * Improve tests coverage Related: #921 * Improve tests coverage Related: #921
Fixed by #1094 |
When accessing a URL handled by a static route, which is a directory, the server responds with HTTP 200 AND HTTP 500 in the response body instead of just responding by e.g. Forbidden.
The route is added by calling
The text was updated successfully, but these errors were encountered: