Django 3 Static Files and NGINX
Published May 2, 2020, 4:40 p.m. by Morgan
As mentioned in my first post, I followed the book, Django 3 by Example, to make this blog. As also mentioned, it was not deployed as the root website directory as generally intended. All I wanted to do was put it in another directory and make /blog on the URL direct to it. I figured, "I'm new to this, but how hard could it be?" Spoiler alert: when you're doing all the administration yourself... very. (TL;DR at bottom if you want to skip the thrilling adventure)
I guess the more precise name for what I did was deploying an application same server and as a subdirectory——for others getting started, a subdirectory is like, www.example.com/subdirectory, which is different from a subdomain, as in www.example.com vs co.example.com; the more you know! Not knowing this terminology was problem #1, since so many of the posts on stackoverflow etc were about development, while I was having an issue with the deployment phase. Speaking of problems, I should probably explain what the big deal was.
Django applications use static files like CSS, and pointing both the app and the server to a non-conventional location turned out to be the main challenge. Playing with the urls.py in the main project directory solved the first issue of getting the page URLs to load correctly, but left the lack of CSS unresolved. I couldn't for the life of me figure out why the CSS wouldn't load. I looked in the Django docs (including static files, serving them in deployment, and the various settings); read through the relevant parts of, Nginx HTTP Server (2018); and pored over every hit on Google. The logs looked fine, more or less, and everything seemed to be configured correctly. The answer finally came from a "clue" in an answer on stackexchange, after seeing someone on stackoverflow mention that they troubleshot their issue using the inspect element browser tool. That second one might have been a no-brainer for someone more experienced, but for someone who was fixated on, "why won't this server work?!" it was the push I needed to put the pieces together.
Loading the bland html page with the console up, I could now see that the request for the static files was happening as it should, but just returning a 404. The lightbulb moment was when I could see the actual URL of the request and put together how everything was supposed to work. In a bout of luck, I'd forgotten my earlier troubleshooting of setting the CSS <link=> in the 'base.html' (the base template for the Django app pages) header to an absolute path, removing the Django {% static %} shortcut in the hope that it would bypass the static settings. I say luck, because seeing that big absolute path attached to the end of upusual.com made it abundantly clear that the request was happening through the Django blog html template. That is, it was being read, but the server, not Django, was trying to do the static request. Since I knew NGINX was doing the handling, I replaced the absolute path with the static Django shortcut in base.html, and was rewarded by the expected URL request... but still a 404. I now knew the issue had to be in the NGINX configuration file for the site, since that was how NGINX knew where to look for the request.
I'd felt a bit silly getting a whole book on NGINX, but that, combined with the aforementioned answer on stackexchange, was what led to the ultimate solution. I'm not sure if the person giving out the, "clue," as they put it, to the original question in that thread intended it as such, but after reading that, I took a closer look at the book section on regex for location blocks. Turns out that regex affects how NGINX prioritizes location blocks. When you use expressions, you can affect the prioritization of the location blocks because specificity gets preference. As near as I can tell, NGINX was prioritizing looking up requests for /static/ in the website root folder (confirmed when I dropped a copy of the static folder in there), and effectively ignoring the location block for /static/. Simply changing it to ^~ /static was enough to bump it up on the priority list, and boom: the site has bushleague CSS from the intended directory.
As an ending note, I did a lot of reading on the static files before realizing it was a server/pathing problem, and many explanations were far too technical (including the docs), so here is my understanding of the mandatory static files options in the settings.py file for Django during deployment:
STATICFILES_DIRS: where the original static files for each application are. These are the ones you edit when you want to change anything. You need to specify the absolute path to them, and can list them as tuples if you want to add a namespace for them, like [ ("namespace0", "/abs/path/to/project/app0/static"), ("namespace1", "/abs/path/to/project/app1/static"), ].
STATIC_ROOT: where the server goes to look for the static files to serve. Running python /abs/path/to/project/manage.py collectstatic copies your static files indicated in the above STATICFILES_DIRS and places them here. It's usually set to os.path.join(BASE_DIR, 'static/').
STATIC_URL: how the request is sent to the server. That is, if I put it at /other/static/, the server request should look like example.com/appname/other/static/ in the element inspector. Usually set to '/static/' and left untouched.
If you're ever unsure if one of these might be an issue, you can always add print('\nBASE_DIR: ',BASE_DIR,'\nSTATIC_ROOT: ',STATIC_ROOT, <or whatever>) at the end of the settings.py file and run it to see how the actual paths look (\n linebreaks are there for readability). The other STATIC options were not used in this endeavor, so I don't know what those
TL;DR NGINX was not prioritizing location blocks like I expected it to. Adding an arbitrary regex so it read location ^~ /static {alias ... made it prioritize the desired pathing to the alias directory.
Hopefully that helps anyone else who got similarly stuck. I do not claim to be an expert, just someone who had to learn by fixing, so corrections are welcome.
Similar posts
There are no similar posts yet.19 comments
Comment 2 by TestUser May 16, 2025, 5:39 p.m.
xsqZ VnSuofOP sIc HBmwK nWN geHzfko
Comment 3 by pnrzftimft June 1, 2025, 5:08 p.m.
oqnzxmmfvzujlevusypujkimgifntf
Comment 4 by elgrspiywn June 25, 2025, 8:52 a.m.
enroztmwyovwteqkiwljnhfyuksodw
Comment 5 by plztjeoyho July 10, 2025, 7:15 p.m.
jeztmferglgtfthnfinmxzjttvizqs
Comment 6 by heswjivlzx Jan. 17, 2026, 9:10 p.m.
nxqdwgtozyqjdxykiqffdkophhmomt
Comment 7 by speysmuztk Jan. 22, 2026, 6:13 a.m.
qzoswrkgpteedmpspplsyqisdyhuyj
Comment 8 by rhwrgnkwgs Jan. 24, 2026, 7:15 p.m.
ihgezrjkidrwhoguhypksjisrruwrm
Comment 9 by joqpxduidq Jan. 26, 2026, 3:18 p.m.
kismqrvhvikymqgxhksqnsimhuxets
Comment 10 by rivgknngev Feb. 27, 2026, 2:24 a.m.
uwroqwgzyknjuxkwkhoignqjfsrxkx
Comment 11 by rymeuxzrht March 22, 2026, 6:29 a.m.
geleglunfrzqjuxtlnfipijxjhlqjs
Comment 12 by Susieorisp March 22, 2026, 8:14 p.m.
РедМетСплав предлагает обширный выбор первоклассных изделий из уникальных материалов. Не важно, какие объемы вам необходимы — от небольших закупок до масштабных поставок, мы выдерживаем оперативное исполнение вашего заказа.
Каждая единица изделия подтверждена требуемыми документами, подтверждающими их качество. Квалифицированный сервис — наш приоритет — мы на связи, чтобы улаживать ваши вопросы и находить ответы под особенности вашего бизнеса.
Доверьте заявку на расчет экспертам РедМетСплав и убедитесь в широком спектре предлагаемых возможностей.
Поставляемая продукция:
<a href=https://redmetsplav.ru/store/magniy-i-ego-splavy/zarubezhnye-splavy-2/magniy-9995---csa-hg-2/prutok-magnievyy-9995---csa-hg-2/>Пруток магниевый 9995 - CSA HG.2</a> Проволока магниевая 9995 - CSA HG.2 - это высококачественный материал, идеально подходящий для различных промышленных применений. Она обладает отличными антикоррозионными свойствами и высокой прочностью, что делает ее популярным выбором среди профессионалов. Используемая в производстве и ремонте, данная проволока отличается легкостью и высокой электропроводностью. Если вы хотите обеспечить надежность своих проектов, вы можете купить Проволока магниевая 9995 - CSA HG.2, и тем самым сделать успешный шаг к достижению поставленных целей. Не упустите возможность приобрести этот премиальный продукт уже сегодня!
Comment 13 by Deborahfoori March 26, 2026, 3:25 p.m.
Требуется достоверного поставщика редких металлов и промышленных сплавов? Ознакомьтесь с предложениями Редметсплав.рф. Мы располагаем колоссальный перечень продукции, подтверждая превосходные параметры каждого товара.
Редметсплав.рф обеспечивает все уровни сделки, предоставляя полный пакет необходимых документов для легализации товаров. Неважно, какие масштабы поставок вам необходимы — от розничных отгрузок до крупнооптовых заказов, мы готовы обеспечить любой запрос с прекрасным качеством обслуживания.
Наша команда специалистов всегда готова помочь, чтобы проконсультировать при поиске нужных позиций и разъяснить детали, связанные с использованием и параметрами металлов. Выбирая нас, вы выбираете надежность в каждой составляющей сотрудничества.
Заходите на портал Редметсплав.рф и убедитесь, что качество и уровень нашего сервиса — наилучшее решение для вашего бизнеса.
Каталог доступных позиций:
<a href=https://редметсплав.рф/catalog/konstruktsionnye-zagotovki/zagotovka-iz-konstruktsionnoi-stali-kruglaia-80-mm-20khf-ost-3-1686-90/>Заготовка из конструкционной стали круглая 80 мм 20ХФ ОСТ 3-1686-90</a> Выбирайте конструкционные заготовки высокого качества для вашего проекта на Редметсплав.рф. Наш ассортимент включает прочные и долговечные материалы, идеально подходящие для различных областей применения, включая строительство и машиностроение.
Comment 14 by Susieorisp March 26, 2026, 5:13 p.m.
РедМетСплав располагает внушительный каталог качественных изделий из нестандартных материалов. Не важно, какие объемы вам необходимы — от тестовых образцов до системных поставок, мы соблюдаем пунктуальность вашего заказа.
Каждая единица продукции подтверждена соответствующими документами, подтверждающими их происхождение. Внимательное отношение — наш приоритет — мы на связи, чтобы ответить на ваши вопросы одновременно с этим предоставлять решения под особенности вашего бизнеса.
Доверьте вашу потребность в редких металлах экспертам РедМетСплав и убедитесь в гибкости нашего предложения.
Наши товары:
<a href=https://redmetsplav.ru/store/magniy-i-ego-splavy/zarubezhnye-splavy-2/magniy-mp1---jis-h-4201/krug-magnievyy-mp1---jis-h-4201/>Круг магниевый MP1 - JIS H 4201</a> Фольга магниевая MP1 - JIS H 4201 представляет собой высококачественный металлический материал, используемый в различных областях, таких как электроника, автомобилестроение и упаковка. Эта фольга обладает отличной проводимостью и коррозионной стойкостью, что делает её идеальным выбором для множества применений. Если вы ищете надежный продукт с превосходными характеристиками, то фольга магниевая MP1 - JIS H 4201 - оптимальное решение. Не упустите возможность купить Фольга магниевая MP1 - JIS H 4201 уже сегодня и обеспечьте надежность ваших проектов.
Comment 15 by Sheilastusa March 26, 2026, 5:29 p.m.
Если вы заняты в области индустрии и испытываете потребность в снабжении высококачественных тугоплавких металлов, то ООО "РМС" — это ваше оптимальное решение. Наша компания профессионально работает в сфере поставок тугоплавкой продукции уже более 10 лет, что гарантирует нам право отгружать только качественный продукт своим клиентам.
Мы обеспечим поставки любого тоннажа.
Внушительный выбор тугоплавких металлов.
Полное документальное сопровождение.
Круглосуточная поддержка.
Зачем мониторить рынок, если на rms-ekb.ru всегда лучшие условия?
При возникновении любых уточнений, наша команда профессионалов всегда к вашим услугам. Оставьте заявку прямо сейчас и проверьте лично в бесспорных достоинствах нашего продукта.
Наша продукция:
<a href=https://rms-ekb.ru/catalog/krug-iz-instrumentalnoi-stali/krug-u9-14-gost-7417-75/>Круг У9 14 ГОСТ 7417 - 75</a>
Comment 16 by GregoryPHYPE March 26, 2026, 10:14 p.m.
<a href=https://t.me/Asiapsi>https://t.me/Asiapsi</a>
Comment 17 by Susieorisp March 30, 2026, 10:11 a.m.
РедМетСплав предоставляет солидную линейку отборных изделий из нестандартных материалов. Не важно, какие объемы вам необходимы — от тестовых образцов до масштабных поставок, мы выдерживаем своевременную реализацию вашего заказа.
Каждая единица номенклатуры подтверждена требуемыми документами, подтверждающими их легитимность. Дружелюбная помощь — наш стандарт — мы на связи, чтобы разрешать ваши вопросы и адаптировать решения под специфику вашего бизнеса.
Доверьте потребности вашего бизнеса команде РедМетСплав и убедитесь в гибкости нашего предложения.
Ассортимент включает:
<a href=https://redmetsplav.ru/store/magniy-i-ego-splavy/zarubezhnye-splavy-2/magniy-g-mgag3se2zr1---din-1729-part-2/lenta-magnievaya-g-mgag3se2zr1---din-1729-part-2/>Лента магниевая G-MgAg3SE2Zr1 - DIN 1729 Part 2</a> Круг магниевый G-MgAg3SE2Zr1 - DIN 1729 Part 2 обладает выдающимися характеристиками, обеспечивая отличную прочность и легкость. Он идеально подходит для применения в аэрокосмической и машиностроительной отраслях. Это высококачественный материал, который отвечает строгим стандартам, что гарантирует его высокую производительность. Профессионалы выбирают этот круг за его надежность и долговечность.Если вы хотите улучшить качество своих проектов, купить Круг магниевый G-MgAg3SE2Zr1 - DIN 1729 Part 2 – идеальное решение. Не упустите возможность использовать передовые материалы для достижения максимальных результатов!
Comment 18 by Deborahfoori March 30, 2026, 3:33 p.m.
В поисках достоверного поставщика редкоземельных металлов и спецсплавов? Обратите внимание на Редметсплав.рф. Мы предлагаем обширный каталог продукции, обеспечивая высочайшее качество каждого лота.
Редметсплав.рф гарантирует все этапы сделки, предоставляя полный пакет разрешительных документов для законного использования товаров. Неважно, какие масштабы поставок вам необходимы — от мелких партий до крупнооптовых заказов, мы готовы поставить любой запрос с прекрасным качеством обслуживания.
Наша команда консультантов всегда на связи, чтобы оказать помощь в подборе нужных изделий и разъяснить детали, связанные с использованием и свойствами металлов. Выбирая нас, вы выбираете уверенность в каждой составляющей сотрудничества.
Заходите на портал Редметсплав.рф и убедитесь, что наши стандарты работы — ваш лучший выбор.
Каталог доступных позиций:
<a href=https://редметсплав.рф/catalog/instrumentalnaia-kruglaia-pokovka/instrumentalnaia-kruglaia-pokovka-175-mm-6khv2s-gost-5950-2000/>Инструментальная круглая поковка 175 мм 6ХВ2С ГОСТ 5950-2000</a> Широкий выбор круглых поковок для профессиональной обработки металла. Инструментальная круглая поковка высочайшего качества с разнообразием размеров и форм. Повышенная прочность, износостойкость и превосходное качество изготовления. Обеспечивает отличное сцепление с материалом и эффективную работу оборудования. Покупайте прямо сейчас!
Comment 19 by Sheilastusa March 30, 2026, 11:07 p.m.
Если вы представляете производственное предприятие и столкнулись с необходимостью в закупке сертифицированных тугоплавких металлов, то ООО "РМС" — это ваше оптимальное решение. Наша компания профессионально работает в сегменте поставок редких металлов на протяжении многих лет, что позволяет нам отгружать только эталонные металлы своим клиентам.
Любые объемы поставок.
Внушительный выбор тугоплавких металлов.
Весь пакет сертификатов.
Круглосуточная поддержка.
Зачем тратить время на поиски, если на rms-ekb.ru всегда готовы помочь?
Если у вас возникли вопросы, наши специалисты всегда готовы проконсультировать вас.. Оставьте заявку прямо сейчас и убедитесь в превосходном качестве нашего продукта.
Реализуемый ассортимент:
<a href=https://rms-ekb.ru/catalog/ugolok-stalnoi/ugolok-iz-konstruktsionnoi-stali-50kh50kh4-mm-16crmo44-uni-6762/>Уголок из конструкционной стали 50х50х4 мм 16CrMo44 UNI 6762</a>
Comment 1 by Hello March 28, 2025, 3:52 p.m.
YRy uUXW jOt NnNcFu Qeghc kvbDY YokSUE