【发布时间】:2017-01-31 18:45:04
【问题描述】:
我最近将一个 Django 项目部署到了我的 DigitalOcean Droplet。我需要在 root 的子文件夹(即 www.domainname.com/)中访问它。到目前为止,这可以使用 apache 配置文件中的 WSGI Aliasing 工作。不过,我在提供静态 js 文件时遇到了问题。
我在模板中使用 {% static %} 标记来执行此操作。但是,当我在浏览器中检查它们时,我的 js 文件似乎总是被当前页面的 html 替换。这是我在settings.py中的静态相关设置:
STATIC_URL = '/static/'
STATIC_ROOT = '/var/www/html/<project name>/static'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "/static"),
]
更新 1
这是我的 apache 配置:
在站点可用/默认:
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
<VirtualHost <project name>:8000>
ServerName <project name>
ServerAlias <domain>/<project name>
ServerAdmin <email>
DocumentRoot /var/www/html/<project name>
WSGIScriptAlias /<project name>/ /var/www/html/<project name>/<project name>/wsgi.py
ErrorLog /var/www/html/logs/error.log
CustomLog /var/www/html/logs/custom.log combined
WSGIPythonPath /var/www/html/<project name>
</VirtualHost>
在 apache2.conf 中:
WSGIScriptAlias /<project name> /var/www/html/<project name>/<project name>/wsgi.py
WSGIPythonPath /var/www/html/<project name>
<Directory /var/www/html/<project name>>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
更新 2
似乎正在通过将静态路径附加到当前页面的路径来请求 .js 文件,即
<domain name>.com/<project name>/<app name>/<page>/<project name>/static/js/<js file name>
【问题讨论】:
-
您需要展示您的 Apache 配置。
-
@DanielRoseman 已更新。
标签: python django django-staticfiles