Django静态文件不可见

Django静态文件不可见,django,mod-wsgi,django-staticfiles,apache2.2,Django,Mod Wsgi,Django Staticfiles,Apache2.2,我的Django网站不会使用Django静态文件管理显示CSS或JS 我的html() 我的Apache默认文件/etc/apache2/sites available/defaults 注意:我无法使用,因为“您使用的服务器名称是该服务器的主名称”,所以我将所有这些都放在默认文件中 <VirtualHost *:80> AliasMatch ^/([^/]*\.css) /var/www/bias_experiment/src/survey/static/$1 Alias /s

我的Django网站不会使用Django静态文件管理显示CSS或JS

我的html()

我的Apache默认文件/etc/apache2/sites available/defaults

注意:我无法使用
,因为“您使用的服务器名称是该服务器的主名称”,所以我将所有这些都放在默认文件中

<VirtualHost *:80>

AliasMatch ^/([^/]*\.css) /var/www/bias_experiment/src/survey/static/$1

Alias /static/ /var/www/bias_experiment/src/survey/static/
<Directory /var/www/bias_experiment/src/survey/static>
Order deny,allow
Allow from all
</Directory>

WSGIScriptAlias /bias_experiment /var/www/bias_experiment/src/bias_experiment/index.wsgi
<Directory /var/www/bias_experiment/src/bias_experiment>
<Files index.wsgi>
Order deny,allow
Allow from all
</Files>
</Directory>

....
(other Apache default code here) 
....

</VirtualHost>
我在一个运行Apache 2.2.22和mod_wsgi 3.3-4ubuntu0.1的共享虚拟机上

但是没有一个静态文件会出现

非常感谢您的帮助

编辑1

根据Stevens的建议,我已将静态根目录更新为

STATIC_ROOT = '/var/www/bias_experiment/src/survey/static/'
但是没有运气

编辑2

这是每个文件(包括其中一个CSS文件)的文件权限。我相信他们是对的

/var/www/bias_experiment/static/survey/css/bootstrap.css

-rw-r--r--1 www-data www-data 121463-Jul 22 19:17 bootstrap.css

/var/www/bias\u实验/静态/调查/css

drwxr-xr-x 2 www-data www-data 4096 Jul 22 19:17 css

/var/www/bias_实验/静态/调查

drwxr-xr-x 6 www data www data 4096 Jul 18 14:44调查

/var/www/bias\u实验/静态

drwxr-xr-x 10 www-data www-data 4096 Jul 22 19:17 static

编辑3ls-ltr/var/www/bias\u-experiment/src/survey/static/


在apache配置文件中,将“允许从所有”更改为“要求所有已授予的””。还要确保您对静态文件具有正确的文件权限。

在apache配置文件中,将“允许从所有文件更改为”要求所有已授予的文件权限。还要确保您对静态文件具有正确的文件权限。

您的静态根目录不正确,应该是

STATIC_ROOT = /var/www/bias_experiment/src/survey/static/
您是否正确设置了
STATICFILES\u DIRS
:根据
collectstatic
的输出,您的静态根可能位于该元组中


最后,
AliasMatch
是否有用

您的静态根不正确,应该是

STATIC_ROOT = /var/www/bias_experiment/src/survey/static/
您是否正确设置了
STATICFILES\u DIRS
:根据
collectstatic
的输出,您的静态根可能位于该元组中


最后,
AliasMatch
是否有用

从您的live站点,我注意到您在静态文件上收到
403禁止的
响应,这意味着这些文件在那里,但是
www-data
对它们没有读取权限。确保递归地
chown
静态根目录(在所有静态资源都存在之后)


一个简单的
sudo chown-R www-data:www-data/var/www/bias_-experience/src/survey/static/
应该可以解决这个问题。

从你的现场站点,我注意到你在静态文件上得到了
403禁止的
响应,这意味着这些文件在那里,但是
www-data
没有读取权限。确保递归地
chown
静态根目录(在所有静态资源都存在之后)


一个简单的
sudo chown-R www-data:www-data/var/www/bias\u-experiment/src/survey/static/
应该可以解决这个问题。。。STATIC\u ROOT必须是要收集静态文件的文件夹,STATICFILES\u DIRS是从中收集静态文件的文件夹。因此,STATICFILES\u DIRS应该位于STATIC\u根文件夹之外,并且您希望Apache为STATIC\u根文件夹中的文件提供服务

正确设置静态根目录和静态文件目录(一种测试方法是在调用collectstatic后在本地主机上以DEBUG=True模式DEBUG=False模式运行),您只需要为静态文件设置别名

WSGIScriptAlias / <REPLACE_BY_YOUR_WSGI_FILE_PATH>
Alias /static/ <REPLACE_BY_YOUR_STATIC_ROOT>
WSGIScriptAlias/
别名/静态/

Erm。。。STATIC\u ROOT必须是要收集静态文件的文件夹,STATICFILES\u DIRS是从中收集静态文件的文件夹。因此,STATICFILES\u DIRS应该位于STATIC\u根文件夹之外,并且您希望Apache为STATIC\u根文件夹中的文件提供服务

正确设置静态根目录和静态文件目录(一种测试方法是在调用collectstatic后在本地主机上以DEBUG=True模式DEBUG=False模式运行),您只需要为静态文件设置别名

WSGIScriptAlias / <REPLACE_BY_YOUR_WSGI_FILE_PATH>
Alias /static/ <REPLACE_BY_YOUR_STATIC_ROOT>
WSGIScriptAlias/
别名/静态/

谢谢您的帮助。因为我正在运行Apache/2.2.22(Ubuntu),根据Django项目文档。“如果您使用的Apache版本早于2.4,请将Require all promited替换为Allow from all,并在其上方添加行Order deny,Allow。”我已使用
sudo chown www data:www data
将静态文件夹以及其中的CSS和JS文件夹设置为www data所有。我相信这是正确的。还是不行。谢谢你的帮助。因为我正在运行Apache/2.2.22(Ubuntu),根据Django项目文档。“如果您使用的Apache版本早于2.4,请将Require all promited替换为Allow from all,并在其上方添加行Order deny,Allow。”我已使用
sudo chown www data:www data
将静态文件夹以及其中的CSS和JS文件夹设置为www data所有。我相信这是正确的。仍然不工作。我已经按照你的建议更改了静态根。我没有使用STATICFILES\u DIRS,但现在已经添加了它们(请参见上面的编辑)。我包括别名匹配,因为它在Django项目文档中。我试过有没有试过,但都没有成功。我现在已经把它注释掉了。通过查看live页面仍然无法正常工作,感谢
STATIC\u ROOT
collectstatic
将文件收集到的位置,而
STATICFILES\u DIRS
是一组目录,其中
collectstatic
将查找stat
WSGIScriptAlias / <REPLACE_BY_YOUR_WSGI_FILE_PATH>
Alias /static/ <REPLACE_BY_YOUR_STATIC_ROOT>