我正在尝试在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)
我的标题 - include.html看起来像:
<link href="{% static 'css/mycss.css' %}" media="screen" rel="stylesheet" type="text/css">
我的css导演位于:
mysite&gt; static&gt; CSS
我收到错误:
localhost / static / css / mycss.css 404(未找到)
我做错了什么???
答案 0 :(得分:4)
不需要文件查找器也不需要静态root。将djando.contrib.staticfiles应用添加到您的应用中。删除url映射并在项目根目录中创建该文件夹。它应该与您生成的链接一起使用。
所以代码:
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static"),
)
或者将文件夹放在应用程序中。但是如果你这样做,你必须将静态URL称为:
{{ STATIC_URL }}
或者只使用/ static /。然后在django模板调用之后,添加文件路径。
如果您想在应用内使用它,请使用您正在使用的标签。特定文件的用途,如自定义样式表或js文件,但对于一般样式,更好地将它放在我告诉你的地方,否则如果你想使用它,你必须在每个应用程序中复制它。 / p>
答案 1 :(得分:0)
我需要将静态文件夹移动到应用程序。 django文档指定django将在每个应用程序中查找静态文件夹。我想站点根文件夹不算那些,因此找不到它。
答案 2 :(得分:0)
在django2中,默认情况下,您只需要为单个应用程序创建静态和模板文件夹,模板渲染和静态文件就为静态和模板文件夹寻找单个应用程序,即使在创建文件夹和复制文件后仍然无法正常工作的情况下,请尝试停止并再次运行服务器,它会解决问题:)