我刚刚在我的登台服务器上移动了我的django网站,并且该网站的管理员端没有使用它的样式,当以前在本地开发时它很好,我在某处读到我需要创建一个符号链接,我通过这样做
sudo ln -s /var/www/sico/htdocs /usr/lib/python2.5/site-packages/django/contrib/admin/
但是我没有做任何其他事情我可以尝试吗?
答案 0 :(得分:10)
根据您的网络服务器设置,您可以采用以下两种方式之一:
在您网站的根文件夹中,您应该创建一个指向Django管理媒体目录的符号链接,在Django应用程序的设置中名称为ADMIN_MEDIA_PREFIX
。默认情况下,这是/media/
,因此在您的网络根文件夹中,创建一个名为media
到/usr/lib/python2.5/site-packages/django/contrib/admin/media
的符号链接。 (请注意符号链接末尾的尾随media
,这是您自己的示例中缺少的 - Django管理媒体位于media
子目录in
contrib / admin`中。
如果您的生产服务器是Apache,并且您可以更改根配置,则可以使用mod_alias
来设置Django管理媒体的路径。同样,假设您的ADMIN_MEDIA_PREFIX
为/media/
,您可以设置如下别名:
<VirtualHost *:80>
Alias /media/ /usr/local/lib/python2.5/site-packages/django/contrib/admin/media/
</VirtualHost>
这样,路径/media/
下的所有请求都将被解析到该目录。
大多数其他服务器也存在类似的技术,例如Lighttpd或nginx;如果您不使用Apache,请查阅服务器的文档。
使用Apache mod_alias
的解决方案可能最适合部署,但符号链接方法也同样适用。
您的应用程序在登台服务器上工作的原因很可能是因为它与Django的内部Web服务器一起运行,该服务器可以自动解析管理媒体目录的路径。
答案 1 :(得分:1)
我认为你以错误的方式创建了符号链接 - 你的命令在.... / contrib / admin /
中创建了一个htdocs
符号链接
您需要的是
sudo ln -s /usr/lib/python2.5/site-packages/django/contrib/admin/ /var/www/sico/htdocs/X
X
是您需要访问ADMIN_MEDIA_PREFIX的地方。我认为默认值为admin/media
希望有所帮助