【问题标题】:having problem with django static file set updjango静态文件设置有问题
【发布时间】:2021-04-01 15:53:39
【问题描述】:

我只能且只能使用此代码在 Django 中设置静态文件

在 settings.py 中的已安装应用中

'....',
'staticfiles',
'....

在 settings.py 的末尾

STATIC_URL = '/staic/'
STATICFILE_DIRS = [
   os.path.join(BASE_DIR, '/static')
]

它奏效了。第一次,我也试过这个

在 urls.py 中

#this way
urlpatterns = [
...,
...,
.....,

] + static(STATIC_URL, document_root=STATIC_ROOT)
#or
urlpatterns += static(STATIC_URL, document_root=STATIC_ROOT)

在第一次它工作但在那个项目之后这种方式不起作用 我浏览了数千个网站。 我在代码中做了所有的事情,比如 youtube 教程 但是第二个代码不再起作用了。但是我不能在生产中使用开发服务器。但是第一个代码(对我有用)需要一个开发服务器。 如果有人知道,请(如果可能)给我示例代码以尝试它,可能的答案以及我可以了解更多信息的所有网站。这会很有帮助。


非常感谢

【问题讨论】:

  • 您使用哪个服务器来托管文件?
  • 我不能在任何地方投资。但是因为在我这里,可用的服务器是 Cpanel。所以我的面板信息可能会有所帮助
  • 显示你的文件夹结构,说明是 DEBUG=true 还是 false。

标签: django django-staticfiles


【解决方案1】:

settings.py写下这段代码

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATIC_URL = '/static/'

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
)

【讨论】:

    【解决方案2】:

    在您的应用程序中不是一米长的 URL。

    如你所说,django开发服务器不适合生产环境。

    您需要像 ApacheNginx 这样的反向代理,以便能够将静态文件提供给您的应用程序和 WSGI HTTP Server 来运行您的应用程序,例如 gunicorn

    这是一个链接,其中包含一个非常好的指南,介绍如何为 django 生产环境设置 gunicorn 和 nginx。

    【讨论】:

    • 非常感谢,但你能解释一下为什么我的第二个代码不起作用。在所有其他开发人员的代码中,它都有效。为什么我的不工作?是我使用的代码还是错误的版本?
    猜你喜欢
    • 1970-01-01
    • 2011-06-11
    • 2013-11-22
    • 2020-11-06
    • 2018-10-21
    • 2014-06-02
    • 2020-06-19
    • 2016-11-13
    • 2018-09-10
    相关资源
    最近更新 更多