I had troubles with static files not loading and followed the previous blog posts here.
After completing all steps, my entire app is not working any more (previously, only the static file main.js was not working when rendered/in production/on the URL provided by render).
Now, however, nothing is working anymore and I have a wave of ServerError (500). This ServerError(500) did not exist BEFORE I completed the steps below. So, the ServerErrors(500) can only be the result of the steps below. Any of the steps below incorrect? Anything I should have done in different order? Typos?
I also added bootswatch as CDN to all my templates (even thought bootswatch seems to have been loaded properly). Just to make sure that bootswatch is not creating the issue.
I do have error message on “HEAD”, so presumably this still relates to loading of static files.
In my index.html I do load the STATIC js/app.js and this is likewise showing me error. So, presumably, because my script with STATIC js/apps.js is not working (indication that static files are not loading properly), I end up with all these 500 errors?
Step 1:
I did not have STORAGES in my settings.py (so, I added this):
STORAGES = {
“staticfiles”: {
“BACKEND”: “whitenoise.storage.CompressedManifestStaticFilesStorage”,
},}
Reason why: django 4.2 does not support STATICFILES_STORAGE = ‘whitenoise.storage.CompressedManifestStaticFilesStorage’
Is this thought correct?
Step 2:
This STORAGES = {} is used in the if not DEBUG condition.
STATIC_URL = ‘/static/’
if not DEBUG:
STATIC_ROOT = os.path.join(BASE_DIR, ‘staticfiles’)
STORAGES = {
“staticfiles”: {
“BACKEND”: “whitenoise.storage.CompressedManifestStaticFilesStorage”,
},}
Is the thought correct to use the STORAGES = {} here instead of using STATICFILES_STORAGE as the second if-not condition here?
Step 3:
I added ‘whitenouse.middleware.WhiteNoiseMiddleWare’ into MIDDLEWARE as per post Trouble Serving Static Files on Django App Deployed with Render - #3 by WebsiteCentral.co
MIDDLEWARE = [
‘django.middleware.security.SecurityMiddleware’,
‘whitenoise.middleware.WhiteNoiseMiddleware’,
‘django.contrib.sessions.middleware.SessionMiddleware’,
Step 4:
The post says, Quote: make sure django.contrib.staticfiles.middleware.StaticFilesMiddleware’,
in your middleware is not commented…
Question: what dos “commented” mean? Commented out? Use of #?
How could I make the above “commented”, i.e. what would I need to do to make the above “commented” assuming it is NOT commented?
Step 5:
As per same Post from above that ends on /16037/3
I also did go to urls.py and added
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Are the two urlpatterns += indendented below the the if-statement? Presumably, yes.
This if statement sits in the urls.yp of django project, right?
Step 6:
I included whitenoise in my requirements.txt file as project dependency
Whitenoise
Step 7:
All and everything except staticfiles worked when I deployed. After completing the steps above of including static files via something that is called WhiteNoise I do have numerous 500 errors. So, something that has worked before now creates numerous 500 errors. All of these 500 errors seem to be related to staticfiles not loading/rendering.
So, now nothing works any longer. Neither staticfiles rendering/loading nor does anything else of the code run any more.
127.0.0.1 - - [24/Apr/2024:09:35:14 +0000] “GET / HTTP/1.1” 500 145 “-” “Go-http-client/2.0”
127.0.0.1 - - [24/Apr/2024:09:35:27 +0000] “GET / HTTP/1.1” 500 145 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36”
127.0.0.1 - - [24/Apr/2024:09:35:29 +0000] “GET / HTTP/1.1” 500 145 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36”
127.0.0.1 - - [24/Apr/2024:09:35:34 +0000] “GET / HTTP/1.1” 500 145 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36”
127.0.0.1 - - [24/Apr/2024:09:35:35 +0000] “GET / HTTP/1.1” 500 145 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36”
127.0.0.1 - - [24/Apr/2024:09:35:36 +0000] “GET / HTTP/1.1” 500 145 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36”
[2024-04-24 09:36:12 +0000] [75] [INFO] Handling signal: term
[2024-04-24 09:36:12 +0000] [76] [INFO] Worker exiting (pid: 76)
[2024-04-24 09:36:13 +0000] [75] [INFO] Shutting down: Master
127.0.0.1 - - [24/Apr/2024:09:36:30 +0000] “GET / HTTP/1.1” 500 145 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36”
This is how I tried to resolve the issue but I continue to have a ServerError(500) on an html tag that does not even exist in my template/index.html
Step 1:
Ensured that a version number is included in requirements.txt file. In my case whitenoise==5.3.0
My django version used is 5.0.3 | Presumably, these two versions, means: the version of whitnoise and version of django, are compatiable
Step 2:
Console shows this:
Server Error (500)
What I DO HAVE in my index.html, i.e. the template for which the console shows the error above, is:
{% load static %}
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootswatch@5.1.3/dist/morph/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="{% static 'css/styles.css' %}">
<title>My thoughts and todos</title>
</head>
and, for the ServerError(500) at the bottom
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js"></script>
Problem/concern: The console of the ServerError(500) shows
Server Error (500)
In my entire index.html I do not have a heading tag of h1. I do not have any heading tag of any nature, i.e. neither h1 nor any other heading tag between h1 and h6.
Question: How can my console refer to a ServerError(500) in a heading tag if I do not even have a heading tag in the template (concise: index.html) where this ServerError(500) is shown? That is strange…Reference of error to something that does not exist in the template.
Step 3:
Since there was a ServerError(500) in the of the index.html, I removed the title altogether. So, now there is no longer a tag in the index.html where the console reported ServerError(500) for the tag
Step 4:
I cleared cache for the page that shows ServerError(500). I refreshed the dashboard on renderseveral times after trying to deploy again
Step 5:
After having deleted the tag in my index.html (as it presumably created an issue),
Step 6:
After having removed the tag in my index.html I “reduced” the 500 error messages down to this
127.0.0.1 - - [24/Apr/2024:10:22:46 +0000] “HEAD / HTTP/1.1” 500 145 “-” “Go-http-client/1.1”
==> Your service is live
127.0.0.1 - - [24/Apr/2024:10:22:54 +0000] “GET / HTTP/1.1” 500 145 “-” “Go-http-client/2.0”
My application logs shows the same.
So, I did have removed the tag in my index.html and still do not have any heading tags of any conceivable nature but my console is saying:
Server Error (500) and this is wrapped into a title-tag
Another Server Error (500) wrapped into a h1 tag
Step 7:
I can see the green button named “Live” but I can not click that button. Is this an indication for something?
Step 8:
Tried to run my https://todo-daeo.onrender.com/ on a different browser. ServerError(500) continues to be displayed.