4

我刚刚完成通过 apache 在互联网上提供我的页面。我可以很好地看到我的网页,但是当我尝试使用管理员时,django 管理页面没有 css,只有 html 页面。但是我网页的 css 显示得很好。谢谢!

我的 http.conf 片段:

WSGIPythonPath C:/Users/robin/web/etc/etc

<Directory C:/Users/robin/web/etc/etc>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>

#Alias /robots.txt /path/to/mysite.com/static/robots.txt
#Alias /favicon.ico /path/to/mysite.com/static/favicon.ico

AliasMatch ^/([^/]*\.css) C:/Users/robin/web/etc/etc/static/styles/$1

#Alias /media/ /path/to/mysite.com/media/
Alias /static/ C:/Users/robin/web/etc/etc/static/

<Directory C:/Users/robin/web/etc/etc/static>
Order deny,allow
Allow from all
</Directory>

#<Directory /path/to/mysite.com/media>
#Order deny,allow
#Allow from all
#</Directory>

WSGIScriptAlias / C:/Users/robin/web/etc/etc/etc/wsgi.py

<Directory C:/Users/robin/web/etc/etc/etc>
<Files wsgi.py>
Order allow,deny
Allow from all
</Files>
</Directory>

我的设置片段:

STATIC_ROOT = 'C:/Users/robin/web/etc/static/'
STATIC_URL = '/static/'

我为静态创建了一个不同的目录,并且已经将 django 定向到找到静态的目录。我已经编辑并添加了上面的设置片段,请检查它。并运行了collectstatic命令,它创建了三个目录——admin、css 和 images。并将项目中的所有静态数据复制到该目录,甚至是管理员目录中的管理员 css 和图像。服务器也很好地显示了我的项目的 css。但不是管理员的CSS。我错过了什么?请指导我。

4

2 回答 2

3

每个应用程序都有自己的静态文件(通常在“静态”目录中,但不一定,请参见settings.STATICFILES_FINDERS)。Django 以调试模式提供这些文件,但在部署到真实服务器之前,您必须从所有应用程序中收集所有静态文件,将其放入一个文件夹并配置 webserver。您可以手动完成,或将settings.STATIC_ROOT 设置为 apache 的 docroot 并运行collectstatic命令。

总之,apache配置:

Alias /static/ C:/Users/robin/web/etc/etc/static/

设置.py:

STATIC_ROOT = 'C:/Users/robin/web/etc/etc/static/'

并运行 collectstatic:

python manage.py collectstatic
于 2013-08-24T16:30:37.483 回答
2

告诉 Django 在哪里可以找到静态文件(如果你还没有的话)。

首先,确保您在“settings.py”STATIC_ROOTSTATIC_URL正确设置,然后在您的实时服务器上简单地运行以下命令。

python manage.py collectstatic

这将收集管理员正确呈现所需的所有静态文件。

运行开发服务器(runserver)时会自动找到静态文件STATICFILES_FINDERS,但在生产中并非如此,实际上STATICFILES_FINDERS在生产中做了其他事情,它在运行 python manage.py collectstatic 后找到并收集文件它们是然后由 Apache 为您提供服务。

于 2013-08-24T16:21:41.113 回答