0

我想让一个现有的django应用程序启动并运行,但是css或其他任何静态文件都没有显示出来。我得到的错误:如何在django中设置静态文件目录

"GET /static/css/mycss.css HTTP/1.1" 404 50 

在设置中使用下列值:

DJANGO_ROOT = dirname(dirname(abspath(__file__))) 
SITE_ROOT = dirname(DJANGO_ROOT) 
STATIC_ROOT = normpath(join(SITE_ROOT, 'assets')) 
STATIC_URL = '/static/' 

STATICFILES_DIRS = (
    normpath(join(SITE_ROOT, 'static')), 
) 

该应用程序包含一个名为“静态”的目录。这是在当前目录结构:

my-django-project > my-django-project > static > css > mycss.css

当我通过本地主机打到家里的网址,我得到上面的404错误。

我在做什么错?

+1

您还需要发布您的网络服务器配置。 Django通常不提供静态文件,你应该配置你的web服务器来直接处理这些请求。 – lanzz

回答

0

您需要运行collectstatic命令将应用中的静态文件收集到STATIC_ROOT

该命令可以像这样运行:

python managy.py collectstatic 

有关静态文件的详细信息可以在django documentation on static files找到。

+0

我收集了所有的静态文件,我仍然得到404s – Atma

+0

好吧,是一个新的目录'my-django-project> static'创建的,它包含来自您的应用程序的静态文件? – HAL

+0

是的,我看到一个名为资产 – Atma

0

我用这CONF:

# Build paths inside the project like this: os.path.join(BASE_DIR, ...) 
import os 
BASE_DIR = os.path.dirname(os.path.dirname(__file__)) 

STATIC_URL = '/static/' 

STATICFILES_DIR = (
    os.path.join(BASE_DIR, "static"), 
    '/home/<username>/my-django-project/my-django-project/static/', 
) 

注:我指定的静态目录的绝对路径。