css没有加载apache但可以使用django runserver命令

时间:2014-08-13 00:26:52

标签: django apache

所以我做了1.6版的整个django教程并安装了Apache 2.4来测试它。 所以我使用这个命令:python manage.py runserver然后转到管理页面的默认地址:http://127.0.0.1:8000/admin/ 这很好,集中和风格。

现在,当我关闭服务器并运行Apache并转到相同的链接时,它没有设置样式。所以我假设CSS不起作用。我查看了Apache日志,但没有看到任何权限错误。

我错过了什么?

3 个答案:

答案 0 :(得分:1)

查看https://docs.djangoproject.com/en/dev/howto/static-files/#deployment

在开发期间,runserver正在某些预先指定和用户指定的目录中查找静态文件。但是,apache无法做到这一点,因为它不知道这些直觉。使用collectstatic,django提供了将所有必需的静态文件复制到单个位置的功能,然后必须在apache的配置中指定。

答案 1 :(得分:1)

原因是apache处理文件系统的方式与django builtin-server的方式不同。 所以,你必须告诉apache每个以/ static /开头的url都不会传递给wsgi(这是在apache上处理python请求的模块)。相反,它将被重定向到" physical"文件系统。

请考虑以下说明基于ubuntu环境。

转到/var/apache2/sites-available/site-your-using.conf(可能是000-default.conf)并将其添加到VirtualHost标记内:

<Directory /path/to/your/static_files>
    Order deny,allow
    Allow from all
</Directory>

做一个 sudo service apache2 restart 而且你准备好了

答案 2 :(得分:0)

全力以赴。

Alias /static/ "C:/mysite/polls/static/"
<Directory "C:/mysite/polls/static">
Require all granted
</Directory>

严格来说,这与WINDOWS有关。有关虚拟主机的信息不适用。我只是将上面的代码添加到我的httpd.conf(Windows中的Apache配置)中,它现在加载了css。 Alias指令是必需的。我根本没有编辑vhosts文件,因为我设置了Apache 2.4,所以它正在运行默认值。

Windows与传统的unix设置(文件和位置不同......)非常不同。 Django doc也应该有一个Windows部分,但是这个页面可以解答所有问题:

https://docs.djangoproject.com/en/dev/howto/deployment/wsgi/modwsgi/#serving-the-admin-files

感谢所有人。