Django URL Config для файлов JavaScript - PullRequest
1 голос
/ 01 марта 2011

Привет, ребята. У меня проблемы с правильной настройкой моего файла Django urls для следующего:

<script type="text/javascript" src="/javascript/HashMap.js"></script>

Что происходит, если файл пытается найти: http://localhost/javascript/HashMap.js ноURL не совпадает ни с одним из URL Config, и поэтому запрос GET не выполняется.

Может ли кто-нибудь помочь мне найти правильную строку для добавления, чтобы разрешить работу такого рода!

Ура

Энди

Ответы [ 3 ]

3 голосов
/ 01 марта 2011

Вам нужно использовать свой JavaScript как статический файл.

Как это сделать в production , зависит от того, с каким веб-сервером вы работаете. Django обычно не обслуживает статические файлы.

Например, для Apache вы должны добавить это в конфигурацию Apache:

Alias /javascript/ /usr/local/wsgi/static/javascript/

Затем вы можете поместить ваши файлы .js в каталог, на который есть ссылка.

В документации Django есть целая страница только на эту тему (со статическими файлами): http://docs.djangoproject.com/en/dev/howto/static-files/

1 голос
/ 01 марта 2011

Javascript обычно считается статическим файлом ресурсов.Если это так в вашем случае, я бы направил вас к документации Django .Если вам действительно нужно использовать urlconfs для указания на представление, которое генерирует Javascript, тогда вам нужно будет сделать запись в вашем URLconf для него и указать его на представление.

0 голосов
/ 01 марта 2011

Если вы пытаетесь получить только файл в качестве статического содержимого, проблема наверняка будет в ваших переменных настроек MEDIA_ROOT и MEDIA_URL. Просто убедитесь, что они указывают, где находится файл javascript, и ваш MEDIA_URL должен иметь постфикс, чтобы обеспечить доступ к «специальному» каталогу, в котором хранятся медиа-файлы.

В случае, если вы пытаетесь выполнить некоторую обработку файла, генерировать его во время выполнения и т. Д. попробуйте с этим регулярным выражением:

r'^javascript/(?P<jsfile>.+\.js)$'

В вашем объявлении представления вместо получения запроса в качестве параметра у вас будет запрос и новый параметр с именем jsfile, то есть имя файла, который вы запрашиваете. Поэтому в представлении выполните обработку и верните объект HttpResponse с содержимым обработанного файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...