【问题标题】:Django cannot find static file on proxy passDjango 在代理通行证上找不到静态文件
【发布时间】:2020-08-22 16:03:26
【问题描述】:

我已设法使我的 Django 应用程序从 VPS 位置运行,但现在它不加载应用程序模板请求的静态文件之一。

应用路径是'http://dev.apps.net/tacdb/'

settings.py 中的静态文件配置:

STATIC_URL = "/static/"
STATIC_ROOT = os.path.join(BASE_DIR, "mysite/static")

# Site name.
SITE_NAME = basename(DJANGO_ROOT)

# Absolute filesystem path to the top-level project folder.
SITE_ROOT = dirname(DJANGO_ROOT)

STATICFILES_DIRS = (os.path.join(BASE_DIR, "mysite", "/static"),)

html文件中的javascript请求:

{% block javascript %}
<script src="{% static '/js/books.js' %}"></script>

{% endblock %}

html 文件位于 /tacdb/mysite/tacdashboard/templates/items/item_list.html

对静态文件的请求是 http://dev.apps.net/static/js/books.js

我在 Apache 中为此应用程序使用代理传递。如果我使用 runserver 直接在端口上运行应用程序,一切正常。

有什么问题吗?

附:当我将位置添加到 proxypass 时出现了这个问题。

非常感谢!

<VirtualHost *:80>
ServerName dev.apps.net

   ProxyRequests Off
   ProxyPreserveHost On
   ProxyVia Full
   <Proxy *>
     Require all granted
   </Proxy>

   <Location /nodejs>
      ProxyPass http://127.0.0.1:8090
      ProxyPassReverse http://127.0.0.1:8090
   </Location>

   <Location /tacdb>
    ProxyPass http://0.0.0.0:8080/tacdb
    ProxyPassReverse http://0.0.0.0:8080/tacdb
   </Location>

</VirtualHost>

【问题讨论】:

  • 您能分享一下您的代理通行证配置文件吗?
  • 当然。我已将其添加到主要问题中。
  • 只有这个文件找不到(books.js)。其他工作?! :|
  • 不应该是&lt;script src="{% static 'name-of-app/js/books.js' %}"&gt;&lt;/script&gt;吗?你能分享一下你是如何引用所有其他正在工作的 js 的吗?
  • 这是在 base.html &lt;script src="{% static 'js/bootstrap.min.js' %}"&gt;&lt;/script&gt;

标签: django django-staticfiles


【解决方案1】:

我更改了 settings.py 中的配置,现在可以使用了! :)

STATIC_URL = "/tacdb/static"

STATICFILES_DIRS = (os.path.join(BASE_DIR, "mysite", "tacdb/static"))

【讨论】:

    猜你喜欢
    • 2020-03-18
    • 2019-11-29
    • 2021-08-27
    • 2014-11-10
    • 2011-08-26
    • 2020-06-22
    • 2021-08-16
    • 2020-06-20
    相关资源
    最近更新 更多