gpt4 book ai didi

django - 在 Django 中为开发模式提供静态文件

转载 作者:行者123 更新时间:2023-12-03 20:22:05 24 4
gpt4 key购买 nike

我在 Django 中以开发模式提供静态文件时遇到问题。我知道这不是应该在生产服务器中使用的设置,所以不用担心。不过现在我想坚持下去。
settings.py相关部分是:

MEDIA_URL = '/media/'
STATIC_URL = '/static/'

MEDIA_ROOT = os.path.join(os.path.abspath(os.path.dirname(__file__) + '/..'), 'media')
STATIC_ROOT = os.path.join(os.path.abspath(os.path.dirname(__file__) + '/..'), 'static')

urls.py :
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

所以静态文件现在位于名为 static 的目录中。就在项目文件夹之外。我验证了 STATIC_ROOT被评估为适当的值。我已经仔细检查了该文件夹是否存在。

但是,当我的浏览器指向地址 localhost:8000/static/js/somefile.js 时,我得到了可怕的 404 Page Not Found留言 'js/somefile.js' could not be found. .您能否为这种行为提出一些理由?

提前致谢。

编辑:

我想我知道问题出在哪里:问题是在开发模式下,Django 试图从 STATIC_URL 中查找文件。在 static/所有已安装应用程序的子目录。但是我在 STATIC_ROOT 中添加了一些额外的文件这些根本不提供。也许有一些冲突。

编辑(2):

必须是这个。当我使用 ./manage.py runserver --nostatic 运行服务器时它有效,也就是说它实际上提供来自 STATIC_ROOT 的文件。目录。我该怎么办?问题是,就像我尝试将所有模板文件与项目本身分开一样,我尝试对某些 css 和 js 文件做同样的事情......

最佳答案

它不起作用,因为我试图做的不是很明智。

这就是它应该如何配置。 settings.py :

MEDIA_URL = '/media/'
STATIC_URL = '/static/'

MEDIA_ROOT = 'media.mydomain.com'
STATIC_ROOT = 'static.mydomain.com'

STATIC_DIRS = (
os.path.join(os.path.abspath(os.path.dirname(__file__) + '/..'), 'static'),
)

所有文件都保持原样,就在原处。

关于django - 在 Django 中为开发模式提供静态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5602263/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com