【问题标题】:Hosting static website with Django使用 Django 托管静态网站
【发布时间】:2017-01-12 01:08:41
【问题描述】:

我有 Django 应用程序在 AWS 上实时运行,地址为 www.domain.com/admin。它没有任何html页面,我们只使用Django-Admin。

现在我必须在www.domain.com 托管一个网站。 我有这种形式的网站包,

site
 |-sass
 |-js
 |-img
 |-fonts
 |-css
 |-index.html

我将site 文件夹复制粘贴到我的Django 应用程序中my_django_app/templates/

另外,添加了这个:

url(r'^$', TemplateView.as_view(template_name='site/index.html')),

my_django_app/my_django_app/urls.py.

并且,更新了我的settings.py

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'templates/site'),
]

现在,当我运行服务器并转到 www.domain.com 时,它会加载我的 html 文件,而没有 CSS、JS 和图像。

请告诉我我做错了什么。

我是 python 的初学者,以前也从未托管过网站。

【问题讨论】:

  • 我宁愿不将 Django 用于静态网站。在这方面,像 Nginx 这样的网络服务器会比 Django 更快。
  • @xyres 我明白这一点,但在我的情况下,我只有一个实例,我需要让网站及其管理仪表板位于同一个 IP 上。
  • 如果在www.domain.com/admin 发出请求,您可以将您的网络服务器配置为将流量转发到 Django,而直接服务器其他 URL。
  • @xyres 你能建议我怎么做吗,我正在使用 Amazon Linux 和 Apache 服务器。

标签: python django django-templates django-admin


【解决方案1】:

此答案是对this comment 的回复,而不是对原始问题的回答。

  1. 在您的 Apache 配置中,将:WSGIScriptAlias / 更改为 WSGIScriptAlias /admin

  2. </VirtualHost>结束标记之前添加:

    Alias / /path/to/static/site/
    <Directory /path/to/static/site/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Order Deny,Allow
        Allow from all
    </Directory>
    

我还没有测试过,但我相信这应该可行。

【讨论】:

    猜你喜欢
    • 2016-08-15
    • 2014-05-13
    • 2018-09-14
    • 1970-01-01
    • 2012-07-27
    • 2019-05-01
    • 2021-07-16
    • 2020-12-18
    • 2017-02-28
    相关资源
    最近更新 更多