如何在python django中加载静态文件

时间:2016-06-29 11:03:01

标签: python html css django

我试图在settings.py文件中修改以允许加载css文件,但是某些html代码仍然没有出现其样式,在终端中运行命令" python manage.py collectstatic"并且它说文件被复制但仍然没有出现效果。

这里是settings.py文件中的修改后的内容

STATIC_ROOT = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),
]
STATIC_URL = '/static/'

4 个答案:

答案 0 :(得分:0)

在您的settings.py中提供:

STATICFILES_FINDERS = [
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
]


BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static_files'),
                   )
STATIC_ROOT = os.path.join(BASE_DIR, 'static', )
STATIC_URL = 'http://example.com/static/'

因此,如果定义了静态文件查找程序,则将static_files声明为source 静态文件,无论你放在哪个

/your_root/static_files/ 

将进入

/your_root/static 

运行后

python manage.py collectstatic

的错误
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),
]

是您尝试从同一目录中获取并带到同一目录,该目录是收集的所有静态文件的目标目录。

答案 1 :(得分:0)

最好设置STATIC_ROOT = os.path.join(BASE_DIR, 'static_root')

如果您在BASE_DIR中有一个名为static的文件夹,请添加

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
)

运行static_root/

后,您可以将.gitignore添加到python manage.py collectstatic文件

答案 2 :(得分:0)

我使用的方式是:

  1. 创建一个静态/ name_of_app目录,用于存储我的静态文件
  2. 2.在Html中

    首先加载静态文件{%load static%}

    然后链接到路​​径

    href =" {%static' name_of_app / fileName' %}"

答案 3 :(得分:-1)

您可以在最新的Django版本中将这些代码添加到settings.py中。

  

STATIC_URL ='/ static /'

     

MEDIA_URL ='/ media /'

     

STATICFILES_DIRS = [os.path.join(BASE_DIR,'static_in_env')]

     

VENV_PATH = os.path.dirname(BASE_DIR)

     

STATIC_ROOT = os.path.join(VENV_PATH,'static_root')

     

MEDIA_ROOT = os.path.join(VENV_PATH,'media_root')