Установить приложение Django в корневой папке гораздо проще, но у меня есть проект, в котором я должен настроить приложение в подпапке, хотя я знаю, что большинство опытных разработчиков не будут делать это таким образом.
У меня есть веб-сайт, размещенный с NameCheap, http://www.sctongye.com, блог WordPress установлен в корневой папке, сейчас я пытаюсь настроить приложение Django в подпапке cPanel http://sctongye.com/thoughts/ с настройками.py, показанный ниже
STATIC_URL = 'thoughts/static/' # on server
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static"),
)
Кажется, все работает нормально, но когда я попытался войти через администратора
http://sctongye.com/thoughts/admin/ или http://sctongye.com/thoughts/xadmin/ (другой администраторЯ установил)
неверный путь ко всем статическим файлам, как показано ниже:
GET http://sctongye.com/thoughts/xadmin/thoughts/static/thoughts/static/xadmin/vendor/bootstrap/css/bootstrap.css 404 (Not Found)
GET http://sctongye.com/thoughts/xadmin/thoughts/static/xadmin/css/themes/bootstrap-xadmin.css 404 (Not Found)
GET http://sctongye.com/thoughts/xadmin/thoughts/static/thoughts/static/xadmin/css/xadmin.main.css 404 (Not Found)
Как вы видите, тонны дублированных статических имен в ссылке на путь.
Чтобы приложение Django работало с подпапкой, мне нужно настроить файл .htaccess прямо в подпапке
# DO NOT REMOVE. CLOUDLINUX PASSENGER CONFIGURATION BEGIN
PassengerAppRoot "/home/username/thoughts"
PassengerBaseURI "/thoughts"
PassengerPython "/home/username/virtualenv/thoughts/3.6/bin/python3.6"
RewriteCond %{REQUEST_URI} !^/thoughts (<== I had to add this line to make it work, but I think this should be where the potential problem come from)
# DO NOT REMOVE. CLOUDLINUX PASSENGER CONFIGURATION END
Поскольку я делаю это через cPanel, нет доступа ко всемдругие файлы настроек сервера, такие как conf, может кто-топомогите разобраться, почему статический файл для страницы администратора выглядел так странно и как я могу это исправить?