django开发中加载静态文件时出现404错误

Atm*_*tma 1 django django-templates django-settings django-staticfiles

我正在尝试在 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',
)
Run Code Online (Sandbox Code Playgroud)

我的网站 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)
Run Code Online (Sandbox Code Playgroud)

我的 header-include.html 看起来像:

<link href="{% static 'css/mycss.css' %}" media="screen" rel="stylesheet" type="text/css">
Run Code Online (Sandbox Code Playgroud)

我的 css 主管位于:

我的站点 > 静态 > css

我收到错误:

本地主机/静态/css/mycss.css 404(未找到)

我究竟做错了什么???

won*_*why 8

不需要文件查找器或静态根。将 djando.contrib.staticfiles 应用程序添加到您的应用程序。删除 url 映射并在项目根目录中创建文件夹。它应该只适用于您生成的链接。

所以代码:

STATIC_URL = '/static/'

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"),
)
Run Code Online (Sandbox Code Playgroud)

或者将文件夹放在应用程序中。但是,如果这样做,则必须将静态 url 调用为:

{{ STATIC_URL }}

或者只使用 /static/。然后在 django 模板调用之后,将路径添加到文件。

如果您想在应用程序内使用它,请使用您正在使用的标签。这是用于特定文件的用途,例如自定义样式表或 js 文件,但对于一般样式,最好将其放在我告诉您的地方,否则如果您想使用它,您必须在每个应用程序中复制它。