【问题标题】:Can't load static files in DJango无法在 DJango 中加载静态文件
【发布时间】:2014-09-03 04:28:47
【问题描述】:

我正在尝试从 myapp/static/myapp/css 加载 Django 中的 css 文件,但无法正常工作。 Chrome 控制台说它无法获取文件 (404)。

Settings.py:

BASE_DIR = os.path.dirname(os.path.dirname(__file__))
PROJECT_DIR = os.path.dirname(__file__)

...

STATICFILES_FINDERS = (
    "django.contrib.staticfiles.finders.FileSystemFinder",
    "django.contrib.staticfiles.finders.AppDirectoriesFinder",
)

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"),
)

STATIC_ROOT = ''
STATIC_URL = '/static/'

urls.py:

urlpatterns = patterns('',
    url(r'^admin/', include(admin.site.urls)),
    url(r'^projects/', include('projects.urls', namespace='projects')),
    url(r'^home/', include('home.urls', namespace='home')),

)+static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += staticfiles_urlpatterns()

主页 urls.py:

from django.conf.urls import patterns,url
from projects.views import DetailView, ListView

urlpatterns = patterns('',
    url(r'^(?P<pk>\d+)/$', DetailView.as_view(), name='detail'),
    url(r'^$', ListView.as_view(), name='list'),
)

base.html:

    <link href="{% static 'home/css/bootstrap.min.css' %}" rel="stylesheet" media="screen">
    <script src="{% static 'home/js/jquery-2.1.1.min.js' %}" type="text/javascript"></script>  

【问题讨论】:

  • 需要看home.urls
  • @GAEfan 我在上面添加了代码
  • 我很困惑。你说你想从myapp/static/myapp/css加载css文件,但是你从home/css/调用它们。哪个是正确的?
  • @GAEfan 是的。感谢这个静态文件查找器:“django.contrib.staticfiles.finders.AppDirectoriesFinder”,django 搜索我从 home/ 提供的路线。我意识到我没有将家庭应用程序放在 INSTALLED_APPS 中,这就是它找不到文件的原因。

标签: django


【解决方案1】:

我发现代码运行良好。问题是我忘记将家庭应用程序放在 INSTALLED_APPS 中。

感谢您的宝贵时间。

【讨论】:

    猜你喜欢
    • 2020-11-12
    • 1970-01-01
    • 2014-07-12
    • 2018-03-19
    • 2020-02-19
    • 2015-12-17
    • 2011-11-26
    相关资源
    最近更新 更多