404在django中加载开发中的静态文件时出错



我正在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静态文件开发

最新更新