问题:最近在DJango项目目录下打开HTML文件,css等静态文件始终无法加载成功。
出现两种报错情况:
①css等静态资源,404
②css等静态资源,200,但报错:Resource interpreted as Stylesheet but transferred with MIME type text/html
原因:是因为DJango项目settings设置的路径,会直接从当前目录去寻找statics目录。但本是项目static的目录,还在上一层
解决:
①配置settings:
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(os.path.dirname(__file__),'../static') # 注意static的目录路径
STATICFILES_DIRS =(
('css',os.path.join(STATIC_ROOT,'css').replace('\\','/')),
('js',os.path.join(STATIC_ROOT,'js').replace('\\','/')),
('fonts',os.path.join(STATIC_ROOT,'fonts').replace('\\','/')),
('images',os.path.join(STATIC_ROOT,'images').replace('\\','/')),
)
TEMPLATE_DIRS = (os.path.join(BASE_DIR, 'templates'),)
② 在正确配置 settings 的基础上还需要再加两步:
1. 确保 settings 的 INSTALLED_APPS 包含 'django.contrib.staticfiles'
2. 命令行进入项目根目录输入:python manage.py collectstatic,你会看到一大坨样式文件嗖嗖地拷贝到了你设置的 STATIC_ROOT 目录中
最后,重新启动项目。就可以了