title: Differences between STATICFILES_DIR, STATIC_ROOT and MEDIA_ROOT
body: <p>What are the differences of these three static url? </p>
  
  <p>I am not sure if I am right, I am using the <code>MEDIA_ROOT</code> to store my uploaded photos (via <code>models.ImageField()</code>) </p>
  
  <p>However, I created a JS script to my admin and in <code>admin.py</code>. I defined the media as below:</p>
  
  <pre><code>....
  class Media:
        js = ('/admin/custom.js', )
  </code></pre>
  
  <p>and my <code>settings.py</code>:</p>
  
  <pre><code> ....
   STATIC_ROOT = "/home/user/project/django1/top/listing/static"
  </code></pre>
  
  <p>and I added the <code>custom.js</code> to <code>STATIC_ROOT/admin/custom.js</code>, but it is not working. Throwing 404 not found error. </p>
  
  <p>And then I change the <code>STATIC_ROOT</code> to <code>STATICFILES_DIRS</code>, and it works!!</p>
  
  <pre><code>....
  STATICFILES_DIRS = "/home/user/project/django1/top/listing/static"
  </code></pre>
  
  <p>So, I am not understand what is going on here. In fact, I just don't understand what is the difference between <code>STATIC_ROOT</code> and <code>STATICFILES_DIRS</code>. </p>
  
  <p>Currently I am testing Django in my machine via virtualenv, not deployed yet, is it the reason <code>STATIC_ROOT</code> not working?? </p>