- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
这三个静态url有什么区别?
我不确定我是否正确,我正在使用 MEDIA_ROOT
来存储我上传的照片(通过 models.ImageField()
)
但是,我在 admin.py
中为我的管理员创建了一个 JS 脚本。我将媒体定义如下:
....
class Media:
js = ('/admin/custom.js', )
还有我的settings.py
:
....
STATIC_ROOT = "/home/user/project/django1/top/listing/static"
我将 custom.js
添加到 STATIC_ROOT/admin/custom.js
,但它不起作用。抛出 404 not found 错误。
然后我把STATIC_ROOT
改成STATICFILES_DIRS
,就可以了!!
....
STATICFILES_DIRS = "/home/user/project/django1/top/listing/static"
所以,我不明白这里发生了什么。其实我只是不明白STATIC_ROOT
和STATICFILES_DIRS
有什么区别。
目前我正在通过 virtualenv 在我的机器上测试 Django,尚未部署,这是 STATIC_ROOT
不起作用的原因吗?
最佳答案
STATIC_ROOT
在开发过程中是没用的,只是部署时需要的。
在开发过程中,STATIC_ROOT
什么都不做。你甚至不需要设置它。 Django 在每个应用程序的目录 (myProject/appName/static
) 中查找静态文件并自动提供它们。
这是 manage.py runserver
在 DEBUG=True
时完成的魔法。
当您的项目上线时,情况会有所不同。您很可能会使用 Django 提供动态内容,而静态文件将由 Nginx 提供。为什么?因为 Nginx 非常高效,并且会减少 Django 的工作量。
这就是 STATIC_ROOT
派上用场的地方,因为 Nginx 对您的 Django 项目一无所知,也不知道在哪里可以找到静态文件。
所以你设置 STATIC_ROOT = '/some/folder/'
并告诉 Nginx 在 /some/folder/
中查找静态文件。然后运行 manage.py collectstatic
,Django 会将静态文件从你拥有的所有应用程序复制到 /some/folder/
。
STATICFILES_DIRS
用于包含 additional 目录以供 collectstatic
查找。例如,默认情况下,Django 不识别 /myProject/static/
。所以你可以自己包含它。
STATIC_URL = '/static/'
if not DEBUG:
STATIC_ROOT = '/home/django/www-data/example.com/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static/'),
]
关于python - STATICFILES_DIR、STATIC_ROOT 和 MEDIA_ROOT 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24022558/
我是 Django 的新手,我正在尝试找到一种方法来在我的元素中加载我的 css 文件。这是我的 settings.py 文件 STATICFILES_STORAGE = 'whitenoise.dj
我从项目中的一些模板中渲染了一些 pdf。好吧,这似乎可行,但是...... ...我想测试一下! 问题是我在渲染期间读取的一些文件位于 STATIC_ROOT 中 - 因此我需要在运行测试时收集静态
当我尝试在 webfacional 的服务器上运行 webapp 时,我陷入了关于 STATIC_URL 和 STATIC_ROOT 的问题 2 小时。 当我加载网页时,所有请求都运行良好,除非任何带
我已经通过官方文档和一些文章阅读了有关它们的内容,但我仍然感到困惑。就我现在所知,MEDIA_ROOT用于用户上传的图像和文件,而STATIC_ROOT用于js,css等。至于MEDIA_URL,是否
我正在 Heroku 上部署一个 Django 应用程序。 在我的设置模块中,我已配置为托管静态文件,例如 STATIC_ROOT = os.path.join(BASE_DIR, 'static_m
我对 Django 中的静态文件和媒体文件感到困惑。我在其他地方看到人们可以互换使用它。 我应该什么时候使用 media_root我什么时候应该使用 static_root ? 如果我有网站图片,我应
我使用的是 Django 1.7。将我的网站部署到生产服务器并运行 collectstatic 时,我收到以下错误消息: django.core.exceptions.ImproperlyConfig
我正在使用此 STATIC_ROOT 和 MEDIA_ROOT 配置: STATIC_URL = '/static/' STATICFILES_DIRS = ( os.path.join(BA
我在 settings.py中有一个 Django 1.3 项目,此选项。 SITE_ROOT = os.path.dirname(os.path.realpath(__file__)) STATIC
在我的settings.py 文件中,STATIC_ROOT 和MEDIA_ROOT 目前都指向硬编码位置。例如STATIC_ROOT路径是: /home/ian/projectname/mysite
我很难将项目部署到heroku,因为它说找不到静态文件。我的静态文件位于名为“static”的文件夹中名为“social”的应用程序中,它们不在 management.py 所在的基本目录中。 --p
我正在使用 Python 3.5 和 Django 1.10 来运行开发服务器: ./manage.py runserver 0.0.0.0:8000 在我的 settings.py我有: DEBUG
我的 STATIC_ROOT 文件夹指定为 /var/www/app_name/static,非 sudo 用户通常不应访问该文件夹。 它是由具有 sudo 权限的用户创建的。现在我正在尝试对我自己的
这三个静态url有什么区别? 我不确定我是否正确,我正在使用 MEDIA_ROOT 来存储我上传的照片(通过 models.ImageField()) 但是,我在 admin.py 中为我的管理员创建
我已经浏览了所有其他答案,但似乎无法找到任何对我有用的东西。我正在遵循教程并尝试将我的 master 分支推送到 heroku 并收到错误您正在使用 staticfiles 应用程序,而没有将 STA
我对 static root 感到困惑,想澄清一些事情。 要在 Django 中提供静态文件,settings.py 和 urls.py 中应包含以下内容: import os PROJECT_DIR
对于 Django 的 'staticfiles' 应用程序中 STATIC_URL 和 STATIC_ROOT 之间的区别,我有些困惑。 我相信我了解 STATIC_ROOT 是什么:它本质上是服务
我想在文件夹中添加特定的 Assets ,并且应该能够使用像/assets/css/main.css 这样的 url 进行访问 我可以使用/static/css/main.css 但不能使用/asse
我正在使用 Django 2.2。来自 Django 管理静态文件 documentation : If you use django.contrib.staticfiles as explained
我是 Django 和 Web 应用程序开发的新手。我正在尝试将 css 添加到我的演示站点(在 Windows7 上使用 django v1.4)并收到以下错误。我都试过了,浪费了将近 3-4 个小
我是一名优秀的程序员,十分优秀!