【问题标题】:my django admin page don't have the css when viewed over the apache server通过 apache 服务器查看时,我的 django 管理页面没有 css
【发布时间】:2013-08-27 13:08:32
【问题描述】:

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

我的 http.conf sn-p:

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>

我的设置 sn-p:

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

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

【问题讨论】:

    标签: html css django apache apache2


    【解决方案1】:

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

    总之,apache配置:

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

    settings.py:

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

    然后运行 ​​collectstatic:

    python manage.py collectstatic
    

    【讨论】:

    • 我已经为静态创建了一个不同的目录,并且已经将 django 定向到了可以找到静态的目录。我已经编辑并添加了上面设置的sn-p,请检查它。并运行collectstatic 命令,它创建了三个目录——admin、css 和images。并将项目中的所有静态数据复制到该目录,甚至是管理员的 css 和图像。服务器也很好地显示了我的项目的 css。但不是管理员的CSS。我必须将 apache 指向静态项目吗?
    • 尝试从 apache 配置中删除 AliasMatch 指令。
    • 错字? Alias /static/ C:/Users/robin/web/*etc/etc*/static/STATIC_ROOT = 'C:/Users/robin/web/etc/static/'
    【解决方案2】:

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

    首先,确保您在 `settings.py' 中正确设置了 STATIC_ROOTSTATIC_URL,然后在您的实时服务器上运行以下命令。

    python manage.py collectstatic
    

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

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

    【讨论】:

    • 我已经为静态创建了一个不同的目录,并且已经将 django 定向到了可以找到静态的目录。我已经编辑并添加了上面设置的sn-p,请检查它。并运行collectstatic 命令,它创建了三个目录——admin、css 和images。并将项目中的所有静态数据复制到该目录,甚至是管理员的 css 和图像。服务器也很好地显示了我的项目的 css。但不是管理员的 css。
    猜你喜欢
    • 2021-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-05
    • 1970-01-01
    • 2011-07-29
    • 1970-01-01
    • 2016-12-27
    相关资源
    最近更新 更多