2013-09-11 4 views
0

У меня есть/статический/подкаталог в моем приложении django (размещенном на appengine), который используется для обслуживания изображений .js и .css-файлов (с django.views.static.serve).Appengine: Django static serve: предотвратить список каталогов

Я хотел бы предотвратить список каталогов в этом подкаталоге, но .htaccess, похоже, не работает. Как я могу это сделать ?

ответ

2

В этом вопросе много путаницы.

.htaccess - это особенность веб-сервера Apache, поэтому, естественно, он не будет работать на сайте, который не обслуживается Apache.

django.views.static.serve - это способ обслуживания файлов только для разработки. Он не должен использоваться на производственной площадке - фактически, как указано в the documentation, он даже не работает, если DEBUG False.

App Engine имеет свой собственный способ обслуживания статических активов через пути обработчика configured in app.yaml, и это то, что вы должны использовать для приложения App Engine. В любом случае этот метод не поддерживает список каталогов.

+0

Странно. Я использую DEBUG = os.environ.get ('SERVER_SOFTWARE', ''). Startswith ('Development') в моих настройках.py и, похоже, делает трюк для режима отладки. У меня не было статического обработчика в моем приложении app.yaml, но django.views.static.serve работал для статических файлов даже в развернутом приложении. Я добавил обработчик в app.yaml, но список каталогов по-прежнему доступен ... – Sebastien

+0

Хорошо, я положил новый обработчик в верхнюю часть объявлений моего обработчика, и теперь он работает. Во всяком случае, django.views.static.serve работает в производственной среде (с DEBUG = False). Я изменю это на обработчик appengine. Спасибо за ваш ответ. – Sebastien

+0

Интересно, что, несмотря на это повторное предупреждение в документах, на самом деле нет никакого кода, который его применяет. Weird. Тем не менее, остается то, что вы не должны использовать его в производстве (даже на сайте, отличном от App Engine), потому что он неэффективен и небезопасен. –