2 years ago
Hi there! I am a little stuck on something probably quite simple. It is my first Django deployment. My files locally live in a folder called /media/ that I do not include in the repo (it is in .gitignore). Now it is time to put in prod and I made a volume on Railway (path: '/media').
Two problems:
- How can I copy my old media files over?
- I tried to manually upload new files and it doesn't seem to be working, I'm guessing my path is wrong?
Here is what my settings looks like:
MEDIA_ROOT = os.path.join(BASE_DIR, "media")
MEDIA_URL = "/media/"
It's a bit urgent so if you know the answer and can help it would be soooo appreciated 🙂 Thanks!
94 Replies
2 years ago
44d106ae-9c5c-4d81-86b3-296c53f1efee
2 years ago
what is the mount path of the volume?
2 years ago
/media is what i've put
2 years ago

2 years ago
Dockerfile or nixpacks?
2 years ago
whatever was default set up
2 years ago
im not sure
2 years ago
then nixpacks
2 years ago
in the build logs it menions docker
2 years ago
please read this docs section -
2 years ago
I already have, but I am confused :S
2 years ago
tl;dr mount to /app/media
2 years ago
i set my django settings like this originally and the MEDIA_VOLUME_PATH does refer to /app/media (I set it in the env variables in prod):
MEDIA_ROOT = os.getenv("MEDIA_VOLUME_PATH", os.path.join(BASE_DIR, "media"))
MEDIA_URL = "/media/"
2 years ago
go back to the code you originally showed in the root post
2 years ago
and update your mount path
2 years ago
alright
2 years ago
i can't seem to edit it
2 years ago
why not?
2 years ago
the original post?
2 years ago
dunno i click edit post and its the title
2 years ago
why do you need to edit your post?
2 years ago
ohhh sorry i misunderstood you
2 years ago
yes i ahve already changed it back in the code
2 years ago
testing it now
2 years ago
sorry i think i am confused
2 years ago
MEDIA_ROOT = os.getenv("MEDIA_VOLUME_PATH", os.path.join(BASE_DIR, "media"))
MEDIA_URL = "/media/"
change this??
2 years ago
change that back to the code you showed in the original post
2 years ago
and then update your volume's mount
2 years ago
okay
2 years ago
so this? and this:


2 years ago
looks fine at first glance
2 years ago
let's see your urls.py file as well
2 years ago
from django.urls import path, include, re_path
from wagtail.admin import urls as wagtailadmin_urls
from wagtail import urls as wagtail_urls
from wagtail.documents import urls as wagtaildocs_urls
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path("admin/", admin.site.urls),
path("", include("home.urls")),
path("", include("blogs.urls")),
path("cms/", include(wagtailadmin_urls)),
path("documents/", include(wagtaildocs_urls)),
path(r'comments/', include('django_comments_xtd.urls')),
path("", include(wagtail_urls)),
] + static(settings.MEDIA_URL,
document_root=settings.MEDIA_ROOT)```
2 years ago
please enclose that in a code block
2 years ago
`from django.contrib import admin
from django.urls import path, include, re_path
from wagtail.admin import urls as wagtailadmin_urls
from wagtail import urls as wagtail_urls
from wagtail.documents import urls as wagtaildocs_urls
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path("admin/", admin.site.urls),
path("", include("home.urls")),
path("", include("blogs.urls")),
path("cms/", include(wagtailadmin_urls)),
path("documents/", include(wagtaildocs_urls)),
path(r'comments/', include('django_comments_xtd.urls')),
path("", include(wagtail_urls)),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)`
2 years ago
edit the message please
2 years ago
code block please
2 years ago
my bad
2 years ago
looks fine to me
2 years ago
it is as if when i make a new post it doesn't know where to save the photo. look what happens:
this is a pic i just uploaded

2 years ago
similarly this is what my files look like in admin on django/wagtail

2 years ago
what are their status codes?
2 years ago
you mean when i clik? pae not found
2 years ago
status code please
2 years ago
im sorry i don't know how tofind that
2 years ago
can you direct me please?
2 years ago
sorry but that's outside of the realm of what we can help with
2 years ago
okay
2 years ago
I'm just going to assume it's 404, meaning you need to fix your urls.py file
2 years ago
ok
2 years ago
is there an example online of what the setup should look like? i think it would help me, i couldn't find one
2 years ago
you've asked at a very bad time, the repo I would have sent has gone missing
2 years ago
thats what i thought
2 years ago
does this provide any info?
https://web-production-2206.up.railway.app/media/images/bamies_main_photo_toijouv.original.jpg
This is the URL that is given to the photoo when i upload it
2 years ago
I'm on mobile, so no
2 years ago
what's your current volume mount
2 years ago
/app/media
2 years ago
what's your media settings
2 years ago
MEDIA_URL = "/media/"```
2 years ago
ive been trying different iterations of it
2 years ago
again, use the code you originally posted
2 years ago
it doesn't work. it looks as though when you upload a photo it gets sent to the wrong place a folder that doesn't exist. are you sure /app/media doesn't need to be referenced?
2 years ago
what makes you say it's sent to the wrong location, does the volume's metrics increase?
2 years ago
no nothing
2 years ago
yes actaully
2 years ago
i guess it is uploaded to the right volume but the website is not trying to pick it up from there? the url of the pic when i click on it is just 'media' not app/media
2 years ago
also, changed it to the original code from the post and printed the MEDIA_ROOT and it gave '/media' is this right?
2 years ago
do you not have BASE_DIR defined?
2 years ago
BASE_DIR = Path(__file__).resolve().parent.parent
2 years ago
why is that not printing anything?
2 years ago
Can you help me with the other part of my question please? Basically, can i push my local media folder to the volume? like with scp or something?
2 years ago
it's complicated, it's best if you upload the media again
2 years ago
okay
2 years ago
i still haven't been able to get it to work. as far as i understnad the media_url is meant to be where i can find the files and i get "Page not found"
2 years ago
2 years ago
as mentioned, your urls.py is wrong
2 years ago
you need something to actually serve the media files on that url path
2 years ago
how can i do this? is there any more documentation on it
2 years ago
so this is wrong?

2 years ago
you said it looked fine here
2 years ago
I'm not a Django developer
2 years ago
this wouldn't be specific to railway
2 years ago
but usually, for example if i was using google buckets, there would be information on how to serve it
2 years ago
right but you are serving from disk, so it's not platform specific
2 years ago
okay is it true that: Railway handles this by default for you, so you usually don’t need to configure Nginx or other web servers manually. (from chat gpt)
meaning if i remove that part from urls.py railway will just sort it for me?
2 years ago
no that's not true at all, this has nothing to do with the platform, your application needs to serve those media files itself
2 years ago
is it better to not use railway volumes?
2 years ago
there's nothing wrong with using railway volume's, I strongly advise you not to ask AI about railway
2 years ago
haha okay. look i'm a little confused there seems to be so little information on how to use this. what should the url look like?
2 years ago
since this is not platform related, I'm unsure why you're unable to find an answer to this on sites like stack overflow
2 years ago
sorry i thought it was related to railway volumes. typically i would be able to find the answer in the documentation
2 years ago
apologies
2 years ago
the mount point stuff was in the docs, but this has now become purely coding questions about django
2 years ago
and for coding questions related to Django, railway's docs aren't going to help
