我正在django的开发环境中尝试加载静态文件。我的设置如下:
STATIC_ROOT = '/MyProject/myapp/static/'
STATIC_URL = '/static/'
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.humanize',
)
我的网站urls.py看起来像:
from django.conf import settings
import views
from django.conf.urls.static import static
admin.autodiscover()
urlpatterns = patterns('',
) + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
我的header-include.html看起来像:
<link href="{% static 'css/mycss.css' %}" media="screen" rel="stylesheet" type="text/css">
我的css主管位于:
mysite>static>css
我得到错误:
localhost/static/css/mycs.css 404(未找到)
我做错了什么???
不需要文件查找器也不需要静态根。将djando.contrib.staticfiles应用程序添加到您的应用程序中。删除url映射并在项目根目录中创建文件夹。它应该只适用于您生成的链接。
所以代码:
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static"),
)
或者将文件夹放在应用程序中。但如果你这样做,你必须将静态url称为:
{{ STATIC_URL }}
或者只使用/static/。然后,在django模板调用之后,添加文件的路径。
如果你想在应用程序中使用它,请使用你正在使用的标签。这是针对特定的文件使用的,比如自定义样式表或js文件,但对于一般样式,最好将其放在我告诉你的地方,否则如果你想使用它,你必须在每个应用程序中复制它。
在django2中,您只需要为单个应用程序创建静态和模板文件夹,默认情况下,模板渲染和静态文件为静态和模板文件查找单个应用程序,以防即使在创建文件夹和复制文件后也不起作用,尝试停止并再次运行服务器,它会修复:)
我需要将静态文件夹移动到应用程序中。django文档指定django将在每个应用程序中查找一个静态文件夹。我想站点根文件夹不算这些,所以没有找到它。
感谢这篇文章:Django静态文件开发