Django CSS文件未出现在生产服务器中
我的css文件在Django CSS文件未出现在生产服务器中,django,django-templates,Django,Django Templates,我的css文件在生产服务器中不起作用。我使用WSGI进行部署。请你解决我的问题好吗?非常感谢。 css链接 <link href="{{ MEDIA_URL}}css/style.css" rel="stylesheet" type="text/css" /> 站点可用\default <VirtualHost *:80> ServerAdmin me@me.com ServerName project.org DocumentRoot "/ho
生产服务器中不起作用。我使用WSGI
进行部署。请你解决我的问题好吗?非常感谢。
css链接
<link href="{{ MEDIA_URL}}css/style.css" rel="stylesheet" type="text/css" />
站点可用\default
<VirtualHost *:80>
ServerAdmin me@me.com
ServerName project.org
DocumentRoot "/home/nibbler/code/project/"
ServerName localhost
ErrorLog "/home/nibbler/code/project/logs/apache-error.log"
CustomLog "/home/nibbler/code/project/logs/apache-access.log" common
Options ExecCGI FollowSymLinks MultiViews
AddHandler wsgi-script .wsgi
WSGIDaemonProcess nibbler
WSGIProcessGroup nibbler
Alias /media /home/nibbler/code/project/templates/media/
WSGIScriptAlias / /home/nibbler/code/project/apache/django.wsgi
DirectoryIndex index.html index.cgi
AddHandler cgi-script .cgi .pl
</VirtualHost>
您只对CSS文件或所有媒体文件有问题吗
MEDIA\u ROOT
-应该是系统上文件的完整路径,看起来您已经拥有了,很好。
MEDIA\u URL
-尝试将完整URL放入媒体文件。试着用完整的url手动访问他们,看看Web服务器是否为他们提供了正确的服务。如果是,则将完整url放入媒体url
在生产中不需要使用if settings.DEBUG
显示的最后一项内容。您确实希望在生产服务器上设置DEBUG=False
顺便说一句,Django建议有两个虚拟主机——一个用于Django应用程序本身,另一个用于媒体(在这里,您只使用http服务器直接提供静态内容,没有动态内容)
希望对你有点帮助 您有:
Alias /media /home/nibbler/code/project/templates/media/
一开始就错了。尝试:
Alias /media/ /home/nibbler/code/project/templates/media/
它们必须都有尾随斜杠,或者都没有尾随斜杠。你不能一个有,另一个没有
顺便说一句,拥有:
DocumentRoot "/home/nibbler/code/project/"
这是个坏主意。不要将DocumentRoot设置为代码所在的位置。如果出于某种原因要删除WSGISriptAlias,那么所有代码都可以由外部人员下载
对于存在WSGI脚本文件和静态文件的位置,您还缺少一个包含Allow指令的目录块。这意味着您在这个虚拟主机之外以某种方式更改了Apache配置,表示Apache可以从您的设备上的任何目录提供文件,这是一个坏主意,因为它剥夺了一个级别的安全性。对于媒体根用户来说也是这样。settings.py中没有结尾斜杠。您是否尝试过访问静态媒体文件?您是否希望这些文件的URL能够解决您遇到的HTTP错误?您是否查看了页面的HTML源代码以查看返回的内容是否正确?目录/Allow是怎么丢失的呢?顺便说一句,非常建议你去看@GrahamDumpleton,我试图从源代码(使用查看源代码)访问静态媒体。我收到错误信息<代码>未找到此服务器上未找到请求的URL/media/css/style.css。
是否已检查目标文件系统目录是否可供Apache用户访问?您是否确保没有使用符号链接?如果没有配置,Apache将不会使用这些符号链接?您是否确保在进行配置更改时重新启动Apache?
Alias /media/ /home/nibbler/code/project/templates/media/
DocumentRoot "/home/nibbler/code/project/"