Django не может найти мои не-python файлы! - PullRequest
1 голос
/ 26 августа 2010

Я не могу, на всю жизнь, заставить Джанго найти мои файлы JavaScript!Я пытаюсь подключить пользовательский виджет к странице администратора, например:

class MarkItUpWidget(forms.Textarea):
class Media:
    js = (
        'js/jquery.js',
        'js/markitup/jquery.markitup.js',
        'js/markitup/sets/markdown/set.js',
        'js/markitup.init.js',
    )
    css = {
        'screen': (
            'js/markitup/skins/simple/style.css',
            'js/markitup/sets/markdown/style.css',
        )
    }

Однако, когда этот код вставлен на мою страницу администратора, все ссылки не работают, я не могу получитьк любому из моих файлов JavaScript.Мой файл настроек выглядит так: http://pastebin.com/qFVqUXyG

Что-то я не так делаю?Я немного новичок в Джанго.

Ответы [ 2 ]

3 голосов
/ 26 августа 2010

Я полагаю, вы используете django-admin runserver для тестирования своего сайта. В этом случае взгляните на « Как обслуживать статические файлы » (но не игнорируйте большой жирный отказ от ответственности ).

Когда вы будете готовы к развертыванию, эта глава содержит всю информацию (при условии, что вы идете по стандартному маршруту Apache / mod_wsgi)

0 голосов
/ 26 августа 2010

Я не знаю, что такое "способ django" для включения js-файлов, но я просто использую простое регулярное включение в шаблон, это здорово, так как вы можете динамически генерировать местоположение / имя файла для них ... о, и если вы используете тестовый сервер django. Я не знаю, как заставить его распознавать их, или даже если это возможно, но все, что вам нужно, это запустить сервер apache на локальном компьютере, а затем поместить файлы в каталог localhost, и вы можете включить через localhost, включая их полный путь в шаблон (т. е. http://localhost/myfiledirectory/myfile.js),. Я также использую amazon s3 для размещения файлов, так как вы получаете URL для них (не то, что вы спрашивали об этом, но его быстрый способ размещения файлов, если у вас не работает apache локально)

По сути, мое понимание Django заключается в том, что он работает не так, как фреймворк PHP, например, поскольку файлы для Django не размещаются (или не нуждаются по крайней мере) в веб-пути (т.е. они не должны быть доступны через путь к хосту, но могут находиться в любом месте на машине) это хорошо для обеспечения дополнительной безопасности и т. д., но это также означает, что для предоставления файлам URL-адреса для их загрузки они должны находиться в пути веб-хостинга, другие может знать, как заставить django делать это напрямую, но мой быстрый и грязный метод помещения их в путь localhost сработает, если это все, что вам нужно.

...