【问题标题】:Django at PythonAnywhere doesn't recognize static urlPythonAnywhere 的 Django 无法识别静态 url
【发布时间】:2014-05-09 09:09:28
【问题描述】:

这个问题看起来类似于这里的问题: Pythonanywhere, how to use static files? url?,但我不能在那里发表评论。

我已经开始学习 Django,当一切都在 localhost 上运行时,在 PythonAnywhere 上却不行。

projectname/settings.py 我已经设置:

STATIC_ROOT = "/home/*username*/*projectname*/Static/"
STATIC_URL = "/s/"

甚至是来自应用中静态文件夹的 URL。

尝试运行后

python3 manage.py collectstatic

每个文件 *.js、*.css 和图像都被复制到 projectname/Static 文件夹中。

但是...在启动应用程序后,它们都没有被识别。 我已经设置了

{% load static %}

使用过的标签

{% static "assets/css/theme.css" %}

在源代码中,我可以看到指向 css 文件的正确链接:

<script src="/s/assets/js/seen.min.js"></script>

一切都会好起来的,但是 django 无法识别“/s/”,它会尝试在 urls.py 中查找视图。 打开链接后:username.pythonanywhere.com/s/assets/js/seen.min.js 我有标准的,调试 404 页面,路径为 urls.py 尝试。

如何解决这个烦人的问题?

【问题讨论】:

  • 你是什么意思,“s/ 不被 Django 识别”?它不应该被 Django 识别,静态文件需要由您的静态服务器提供服务。
  • 是的,它们根本无法识别 - 它在 urls.py 中搜索它们,而不是提供我的资产
  • 你的INSTALLED_APPS中有django.contrib.staticfiles吗?
  • 好吧,那么这是您的 PythonAnywhere 设置的问题:您需要对其进行配置,以便 /s/ 直接访问资产,而不是通过 Django。
  • 但这与 Django 无关! settings.py 无关紧要。查看服务器配置 - 我从来没有使用过 PythonAnywhere,所以我帮不了你,但它必须在他们的管理界面中的某个地方。

标签: python django static


【解决方案1】:

您需要在 Web 应用上添加静态文件映射。在 Web 应用选项卡上查找“静态文件”标题。

根据我对您的设置的了解,您需要将“/s/”作为 URL,将“/home/*username*/*projectname*/Static/”作为目录。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2016-10-22
  • 2018-03-13
  • 1970-01-01
  • 2021-08-25
  • 2013-12-14
  • 1970-01-01
  • 2010-11-08
  • 2014-04-20
相关资源
最近更新 更多