["python","django","static","django-views","django-staticfiles"]
ValueError: Missing staticfiles manifest entry for 'favicon.ico'

I'm getting a ValueError when running python manage.py test. My project is named fellow_go, and I'm currently working on an App called pickup. Please note that this error is added in a relatively recent commit to Django: Fixed #24452 -- Fixed HashedFilesMixin correctness with nested paths.. ====================================================================== ERROR: test_view_url_exists_at_desired_location (pickup.tests.test_view.HomePageViewTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/sunqingyao/PycharmProjects/fellow_go/pickup/tests/test_view.py", line 10, in test_view_url_exists_at_desired_location resp = self.client.get('/', follow=True) File "/Users/sunqingyao/Envs/django_tutorial/lib/python3.6/site-packages/django/test/client.py", line 536, in get **extra) File "/Users/sunqingyao/Envs/django_tutorial/lib/python3.6/site-packages/django/test/client.py", line 340, in get return self.generic('GET', path, secure=secure, **r) File "/Users/sunqingyao/Envs/django_tutorial/lib/python3.6/site-packages/django/test/client.py", line 416, in generic return self.request(**r) File "/Users/sunqingyao/Envs/django_tutorial/lib/python3.6/site-packages/django/test/client.py", line 501, in request six.reraise(*exc_info) File "/Users/sunqingyao/Envs/django_tutorial/lib/python3.6/site-packages/django/utils/six.py", line 686, in reraise raise value File "/Users/sunqingyao/Envs/django_tutorial/lib/python3.6/site-packages/django/core/handlers/exception.py", line 41, in inner response = get_response(request) File "/Users/sunqingyao/Envs/django_tutorial/lib/python3.6/site-packages/django/core/handlers/base.py", line 217, in _get_response response = self.process_exception_by_middleware(e, request) File "/Users/sunqingyao/Envs/django_tutorial/lib/python3.6/site-packages/django/core/handlers/base.py", line 215, in _get_response response = response.render() File "/Users/sunqingyao/Envs/django_tutorial/lib/python3.6/site-packages/django/template/response.py", line 107, in render self.content = self.rendered_content File "/Users/sunqingyao/Envs/django_tutorial/lib/python3.6/site-packages/django/template/response.py", line 84, in rendered_content content = template.render(context, self._request) File "/Users/sunqingyao/Envs/django_tutorial/lib/python3.6/site-packages/django/template/backends/django.py", line 66, in render return self.template.render(context) File "/Users/sunqingyao/Envs/django_tutorial/lib/python3.6/site-packages/django/template/base.py", line 207, in render return self._render(context) File "/Users/sunqingyao/Envs/django_tutorial/lib/python3.6/site-packages/django/test/utils.py", line 107, in instrumented_test_render return self.nodelist.render(context) File "/Users/sunqingyao/Envs/django_tutorial/lib/python3.6/site-packages/django/template/base.py", line 990, in render bit = node.render_annotated(context) File "/Users/sunqingyao/Envs/django_tutorial/lib/python3.6/site-packages/django/template/base.py", line 957, in render_annotated return self.render(context) File "/Users/sunqingyao/Envs/django_tutorial/lib/python3.6/site-packages/django/template/loader_tags.py", line 177, in render return compiled_parent._render(context) File "/Users/sunqingyao/Envs/django_tutorial/lib/python3.6/site-packages/django/test/utils.py", line 107, in instrumented_test_render return self.nodelist.render(context) File "/Users/sunqingyao/Envs/django_tutorial/lib/python3.6/site-packages/django/template/base.py", line 990, in render bit = node.render_annotated(context) File "/Users/sunqingyao/Envs/django_tutorial/lib/python3.6/site-packages/django/template/base.py", line 957, in render_annotated return self.render(context) File "/Users/sunqingyao/Envs/django_tutorial/lib/python3.6/site-packages/django/templatetags/static.py", line 105, in render url = self.url(context) File "/Users/sunqingyao/Envs/django_tutorial/lib/python3.6/site-packages/django/templatetags/static.py", line 102, in url return self.handle_simple(path) File "/Users/sunqingyao/Envs/django_tutorial/lib/python3.6/site-packages/django/templatetags/static.py", line 117, in handle_simple return staticfiles_storage.url(path) File "/Users/sunqingyao/Envs/django_tutorial/lib/python3.6/site-packages/django/contrib/staticfiles/storage.py", line 162, in url return self._url(self.stored_name, name, force) File "/Users/sunqingyao/Envs/django_tutorial/lib/python3.6/site-packages/django/contrib/staticfiles/storage.py", line 141, in _url hashed_name = hashed_name_func(*args) File "/Users/sunqingyao/Envs/django_tutorial/lib/python3.6/site-packages/django/contrib/staticfiles/storage.py", line 432, in stored_name raise ValueError("Missing staticfiles manifest entry for '%s'" % clean_name) ValueError: Missing staticfiles manifest entry for 'favicon.ico' ---------------------------------------------------------------------- fellow_go/settings.py STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles') STATIC_URL = '/static/' STATICFILES_DIRS = [ os.path.join(BASE_DIR, "static"), ] # ...... # Simplified static file serving. # https://warehouse.python.org/project/whitenoise/ STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage' fellow_go/urls.py urlpatterns = i18n_patterns( url(r'^$', HomePageView.as_view(), name='index'), url(r'^pickup/', include('pickup.urls')), url(r'^accounts/', include('django.contrib.auth.urls')), url(r'^admin/', admin.site.urls), prefix_default_language=False ) + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) fellow_go/pickup/views.py class HomePageView(TemplateView): template_name = 'index.html' fellow_go/templates/index.html <link rel="icon" href="{% static "favicon.ico" %}"> fellow_go/pickup/tests/test_view.py class HomePageViewTest(TestCase): def test_view_url_exists_at_desired_location(self): resp = self.client.get('/', follow=True) self.assertEqual(resp.status_code, 200) Any I do have a favicon.ico file: Strangely, no errors occur with python manage.py runserver: /Users/sunqingyao/Envs/django_tutorial/bin/python3.6 /Users/sunqingyao/PycharmProjects/fellow_go/manage.py runserver 8000 Performing system checks... System check identified no issues (0 silenced). May 24, 2017 - 22:09:25 Django version 1.11.1, using settings 'fellow_go.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C. [24/May/2017 22:09:28] "GET / HTTP/1.1" 200 6276 [24/May/2017 22:09:28] "GET /static/css/style.min.css HTTP/1.1" 200 2474 [24/May/2017 22:09:28] "GET /static/css/ie10-viewport-bug-workaround.css HTTP/1.1" 200 430 [24/May/2017 22:09:28] "GET /static/js/ie10-viewport-bug-workaround.js HTTP/1.1" 200 685 [24/May/2017 22:09:28] "GET /static/js/opt-in.js HTTP/1.1" 200 511 [24/May/2017 22:09:28] "GET /static/css/datetimepicker.css HTTP/1.1" 200 12351 [24/May/2017 22:09:28] "GET /static/js/bootstrap-datetimepicker.js HTTP/1.1" 200 55741 [24/May/2017 22:09:35] "GET /static/favicon.ico HTTP/1.1" 200 766 Not Found: /apple-touch-icon-precomposed.png [24/May/2017 22:09:35] "GET /apple-touch-icon-precomposed.png HTTP/1.1" 404 2678 Not Found: /apple-touch-icon.png [24/May/2017 22:09:35] "GET /apple-touch-icon.png HTTP/1.1" 404 2642 Please tell me what's wrong with my code.
Try running: python manage.py collectstatic Does the test work now? If so, this might be the configuration causing a problem: STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage' as of whitenoise v4 this will fail and you should use: STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage' Related: https://stackoverflow.com/a/32347324/2596187 Check out the Django documentation: https://docs.djangoproject.com/en/1.11/ref/contrib/staticfiles/#django.contrib.staticfiles.storage.ManifestStaticFilesStorage.manifest_strict Note that support for STATICFILES_STORAGE was deprecated and then removed from Django 5.1.