a year 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:
MEDIAROOT = os.path.join(BASEDIR, "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
a year ago
44d106ae-9c5c-4d81-86b3-296c53f1efee
a year ago
what is the mount path of the volume?
a year ago
/media is what i've put
a year ago

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


a year ago
looks fine at first glance
a year ago
let's see your urls.py file as well
a year ago
```from django.contrib import admin
from django.urls import path, include, repath from wagtail.admin import urls as wagtailadminurls
from wagtail import urls as wagtailurls from wagtail.documents import urls as wagtaildocsurls
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(wagtailadminurls)), path("documents/", include(wagtaildocsurls)),
path(r'comments/', include('djangocommentsxtd.urls')),
path("", include(wagtailurls)), ] + static(settings.MEDIAURL,
documentroot=settings.MEDIAROOT)```
a year ago
please enclose that in a code block
a year ago
`from django.contrib import admin
from django.urls import path, include, repath from wagtail.admin import urls as wagtailadminurls
from wagtail import urls as wagtailurls from wagtail.documents import urls as wagtaildocsurls
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(wagtailadminurls)), path("documents/", include(wagtaildocsurls)),
path(r'comments/', include('djangocommentsxtd.urls')),
path("", include(wagtailurls)), ] + static(settings.MEDIAURL, documentroot=settings.MEDIAROOT)`
a year ago
edit the message please
a year ago
code block please
a year ago
my bad
a year ago
looks fine to me
a year 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

a year ago
similarly this is what my files look like in admin on django/wagtail

a year ago
what are their status codes?
a year ago
you mean when i clik? pae not found
a year ago
status code please
a year ago
im sorry i don't know how tofind that
a year ago
can you direct me please?
a year ago
sorry but that's outside of the realm of what we can help with
a year ago
okay
a year ago
I'm just going to assume it's 404, meaning you need to fix your urls.py file
a year ago
ok
a year ago
is there an example online of what the setup should look like? i think it would help me, i couldn't find one
a year ago
you've asked at a very bad time, the repo I would have sent has gone missing
a year ago
thats what i thought
a year ago
does this provide any info?
https://web-production-2206.up.railway.app/media/images/bamiesmainphoto_toijouv.original.jpg
This is the URL that is given to the photoo when i upload it
a year ago
I'm on mobile, so no
a year ago
what's your current volume mount
a year ago
/app/media
a year ago
what's your media settings
a year ago
```MEDIAROOT = os.getenv("RAILWAYVOLUMEMOUNTPATH", os.path.join(BASE_DIR, "media"))
MEDIA_URL = "/media/"```
a year ago
ive been trying different iterations of it
a year ago
again, use the code you originally posted
a year 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?
a year ago
what makes you say it's sent to the wrong location, does the volume's metrics increase?
a year ago
no nothing
a year ago
yes actaully
a year 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
a year ago
also, changed it to the original code from the post and printed the MEDIA_ROOT and it gave '/media' is this right?
a year ago
do you not have BASE_DIR defined?
a year ago
BASE_DIR = Path(__file__).resolve().parent.parent
a year ago
why is that not printing anything?
a year 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?
a year ago
it's complicated, it's best if you upload the media again
a year ago
okay
a year 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"
a year ago
as mentioned, your urls.py is wrong
a year ago
you need something to actually serve the media files on that url path
a year ago
how can i do this? is there any more documentation on it
a year ago
so this is wrong?

a year ago
you said it looked fine here
a year ago
I'm not a Django developer
a year ago
this wouldn't be specific to railway
a year ago
but usually, for example if i was using google buckets, there would be information on how to serve it
a year ago
right but you are serving from disk, so it's not platform specific
a year 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?
a year 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
a year ago
is it better to not use railway volumes?
a year ago
there's nothing wrong with using railway volume's, I strongly advise you not to ask AI about railway
a year 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?
a year 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
a year ago
sorry i thought it was related to railway volumes. typically i would be able to find the answer in the documentation
a year ago
apologies
a year ago
the mount point stuff was in the docs, but this has now become purely coding questions about django
a year ago
and for coding questions related to Django, railway's docs aren't going to help
