আমি জ্যাঙ্গো বিকাশ সংস্করণ ব্যবহার করে একটি জ্যাঙ্গো অ্যাডমিন সাইট তৈরি করি
তবে এটিতে সিএসএস শৈলী নেই:
আমি কি করতে পারি?
ধন্যবাদ
আমি জ্যাঙ্গো বিকাশ সংস্করণ ব্যবহার করে একটি জ্যাঙ্গো অ্যাডমিন সাইট তৈরি করি
তবে এটিতে সিএসএস শৈলী নেই:
আমি কি করতে পারি?
ধন্যবাদ
উত্তর:
জ্যাঙ্গো নিজস্ব স্ট্যাটিক ফাইল পরিবেশন করে না। ফাইলগুলি কোথায় তা আপনাকে জানাতে হবে।
Settings.py মধ্যে ADMIN_MEDIA_PREFIX অধিকার অবস্থানে জ্যাঙ্গো নির্দেশ করবে।
যেহেতু আপনি বিকাশ সংস্করণ ব্যবহার করছেন, আপনি স্ট্যাটিক ফাইলগুলির জন্য ডেভ-নির্দিষ্ট নথিটি কীভাবে করবেন তা চাইবেন । অ্যাডামের লিঙ্কটি আপনাকে 1.2 সংস্করণে নিয়ে যাবে।
স্থাপনের পরে আপনার STATIC_ROOT
এবং STATIC_URL
, আপনি চালাতে করতে হতে পারে
python manage.py collectstatic
STATIC_ROOT
এবং STATIC_URL
উদাহরণ,: আমি মিলিত "staticfiles" এবং "স্ট্যাটিক" ব্যবহার STATIC_ROOT=os.path.join(BASE_DIR, "staticfiles")"
এবং STATIC_URL="/static/"
। আমার অ্যাপ্লিকেশনটি ভাল কাজ করেছে, তবে অ্যাডমিন ফাইলগুলি খুঁজে পাওয়া যায় নি। তাই এটি উভয় পরিবর্তন "staticfiles" বা "স্ট্যাটিক"
ADMIN_MEDIA_PREFIX
এখন হ্রাস করা হয়েছে, STATIC_URL
পরিবর্তে ব্যবহার করুন। STATIC_URL = '/static/'
Settings.py এ সেট করার কাজটি করা উচিত। চেষ্টা করুন:
import os.path import sys
PROJECT_ROOT = os.path.normpath(os.path.dirname(__file__))
এবং তারপর:
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static')
STATIC_URL = '/static/'
জাজানো 1.4 প্রাক-আলফা এসভিএন-16920 এ কাজ করে।
static/admin
ভিতরে (ম্যানুয়ালি) সরিয়ে static/css/
রাখি তবে আমি সিএসএস ফাইলগুলি অ্যাক্সেস করতে পারি। সুতরাং দেখে মনে হচ্ছে যে আমি CSS ফাইলগুলি অ্যাক্সেস করতে পারি যদি কেবল এর ভিতরে থাকে static/files
তবে সংগ্রাহকগুলি সেগুলি সেখানে রাখে না। অবশ্যই, ফোল্ডারটি ম্যানুয়ালি সরানো কেবল কাজ করে না কারণ টেমপ্লেটগুলি নির্দেশ করে চলেছে static/admin
।
জ্যাঙ্গো বুক টিউটোরিয়াল অনুসরণ করার পরে আমি এই সমস্যাটি ছড়িয়েছি। অধ্যায় 5 | মডেলটি ইনস্টল করার সময় বইটিতে ডিফল্ট INSTALLED_APPS- কে উল্লেখ করার সময় বলা হয়েছে- "একটি হ্যাশ অক্ষর (#) তাদের সামনে রেখে অস্থায়ীভাবে এই ছয়টি পংক্তির সমস্ত মন্তব্য করুন" " http://www.djangobook.com/en/2.0/chapter05.html
তারপরে Chapter ষ্ঠ অধ্যায়ে বইটি পাঠককে এই lines টি লাইনের মধ্যে ৪ টির সংস্থার কথা বলেছে- "নোট করুন যে আমরা এই চারটি ইনস্টলল_এপিপিএস এন্ট্রি 5 এর অধ্যায়ে মন্তব্য করেছি। এখনই সেগুলিকে কমেন্ট করুন।"
তবে অ্যাডমিন পৃষ্ঠায় সিএসএস পুনরুদ্ধার করার জন্য স্ট্যাটিসিফাইলস লাইনটি এতটাই অসুবিধাজনক যে 'django.contrib.staticfiles',
আমি আরও কয়েকটি থ্রেড এটি সমাধানের চেষ্টা করে পড়েছি ... অন্য থ্রেডের মতোই একটি উলামের আশ্রয় নিয়েছিলাম। এটি ধরে নিয়েছে যে আপনার নিজস্ব কাস্টম অ্যাপটি স্ট্যাটিক ফাইলগুলি সঠিকভাবে পরিবেশন করছে, যা আপনার STATIC_ROOT এবং STATIC_URL এর যথাযথ সেটিংস নির্দেশ করে।
STATIC_ROOT = ''
STATIC_URL = '/static/'
তারপরে (আপনার স্থিতিশীল ডিরেক্টরি থেকে):
ubuntu@ip-1-2-3-4:/srv/www/mysite.com/app_folder/static$ sudo ln -s /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin/ admin
আশা করি এটি কাউকে সহায়তা করবে ... এই বিষয়টিতে প্রচুর থ্রেড রয়েছে। :(
ইন /project_name/project_name/settings.py
আপনি সেট প্রয়োজনSTATIC_URL
আপনার সাইট কোন URL স্ট্যাটিক ফাইল ব্যবহার করতে বলুন।
তারপরে STATIC_ROOT
আপনার ফাইল সিস্টেমে এমন কিছু ফোল্ডার হিসাবে সেট করুন যা আপনার তালিকাভুক্ত ডিরেক্টরিগুলির কোনওর মতো নয়STATICFILES_DIRS
তালিকায় ।
একবার STATICFILES_ROOT
সেট হয়ে গেলে আপনি দৌড়াবেনpython manage.py collectstatic
প্রকল্প ডিরেক্টরি থেকে হন।
এটি STATICFILES_DIRS
তালিকার তালিকাভুক্ত অন্য কোনও ফোল্ডারের সমস্ত প্রশাসক স্থিতিশীল ফাইল এবং সমস্ত ফাইল অনুলিপি করবে । মূলত এটি আপনার সমস্ত স্থিতিশীল ফাইলগুলিকে এক জায়গায় রাখে যাতে আপনি নিজের সাইট মোতায়েনের সময় এগুলি আপনার সিডিএন-এ স্থানান্তর করতে পারেন। আপনি যদি আমার মতো হন এবং সিডিএন না থাকলে আপনার কাছে দুটি বিকল্প রয়েছে:
STATIC_ROOT
সেটি যুক্ত করুন STATICFILES_DIRS
। এটি জাঙ্গোতে স্থিতিশীল অনুসন্ধানকারীদের সমস্ত স্থিতিশীল ফাইলগুলি সনাক্ত করতে অনুমতি দেবে।STATICFILES_DIRS
সেই নতুন অবস্থান অন্তর্ভুক্ত করার জন্য সরাসরি ।আমি এই উত্তরটির সাথে সুরক্ষা সম্পর্কে কোনও মন্তব্য করি না, এটি কেবল ছোট প্রকল্পের জন্য আমার ওয়েব সার্ভারের সাথে বিকাশ করতে সক্ষম হয়েছি। আমি আশা করি যে আপনি সিডিএন চাইবেন জাজো পরামর্শ হিসাবে আপনি যদি আরও বৃহত্তর কিছু করছেন।
আপডেট: আমি সবেমাত্র এই সমস্যাটি নিয়ে এসেছি এবং এই পদ্ধতিটি আমি যা চাইছি তা তেমন করে নি। আমার জন্য কাজ শেষ করে দিয়েছিল আমি দৌড়ানোর পরে আমি collectstatic
কেবল অ্যাডমিন স্ট্যাটিক ফাইলগুলি অনুলিপি করেছিলাম যা এটি STATICFILES_ROOT
আমার নিজের স্ট্যাটিক ফাইলগুলির জন্য ব্যবহৃত ডিরেক্টরিতে রেখেছিল। এটি আমার জন্য সমস্যাটি সমাধান করেছে।
অন্যান্য উত্তরগুলি কার্যকর হওয়ার সাথে সাথে আমার একটি সমস্যা হয়েছিল যা এখনও উল্লেখ করা যায় নি। জ্যাঙ্গো 1.3 থেকে 1.6 আপগ্রেড করার পরে, আমার স্ট্যাটিক ফাইল ডিরেক্টরিতে জাঙ্গো অ্যাডমিন স্ট্যাটিক ফাইলগুলির সাথে একটি ভাঙা প্রতীকী লিঙ্ক ছিল।
আমার সেটিংস.পি এটির সাথে কনফিগার করা হয়েছিল:
STATICFILES_DIRS = (
'/var/www/static/my-dev',
)
এই উত্তর অনুসারে ,
জ্যাঙ্গো এখন ইউআরএল / অ্যাডমিন / এর অধীনে অ্যাডমিন স্ট্যাটিক ফাইলগুলি খুঁজে পেতে আশা করবে।
আমার একটি প্রতীকী লিঙ্ক /var/www/static/my-dev/admin
ছিল যা সেট করা ছিল:
admin -> /usr/local/lib/python2.7/dist-packages/django/contrib/admin/media/
সেই অবস্থানটি আর জাজানো ১.6 এ বিদ্যমান নেই, তাই আমি এখানে লিঙ্কটি আপডেট করেছি:
admin -> /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin/
এবং এখন আমার অ্যাডমিন সাইটটি সঠিকভাবে কাজ করছে।
যদি আপনি নিজের জ্যাঙ্গো সাইটটি হোস্ট করার জন্য অ্যাপাচি সার্ভার ব্যবহার করে থাকেন তবে আপনার অবশ্যই এটি স্থিতিযুক্ত উপন্যাসটি আপনার ডিরেক্টরি / সাইট_মিডিয়া / স্ট্যাটিক / ডিরেক্টরিতে নির্দেশ করতে হবে। যদি আপনার স্ট্যাটিক ফাইলগুলি সাইট / সাইট / সাইট_মিডিয়া / স্ট্যাটিক / ডিরেক্টরিতে থাকে তবে পূর্ববর্তী অ্যাপাচি ওরফে কনফিগারেশনটি কাজ করবে না।
জাজানো টিউটোরিয়ালটি অনুসরণ করার সময়, আমারও একই সমস্যা ছিল এবং আমার ক্ষেত্রে সমস্যাটি সিএসএস ফাইলগুলি পরিবেশন করার সময় ডেভলপমেন্ট সার্ভার দ্বারা ব্যবহৃত মাইমটাইপ ছিল।
পরিবেশন করা মাইমটাইপটি ছিল 'অ্যাপ্লিকেশন / এক্স-সিএসএস' যা ক্রোমে নিম্নলিখিত সংকেত সতর্কতা বার্তার দিকে পরিচালিত করেছিল (বিকাশকারী সরঞ্জামগুলির 'নেটওয়ার্ক' ট্যাবে):
রিসোর্সকে স্টাইলশিট হিসাবে ব্যাখ্যা করা হয়েছে তবে এমআইএমআই টাইপ অ্যাপ্লিকেশন / এক্স-সিএসএস দিয়ে স্থানান্তরিত করা হয়েছে: " http://127.0.0.1:8000/static/admin/css/base.css "
আমি যে কার্যকারিতাটি পেয়েছি: জ্যাঙ্গো ওয়েব অ্যাপের ম্যানেজ.পি ফাইলে নিম্নলিখিত লাইন যুক্ত করে পরিবেশন করা মাইমটাইপ পরিবর্তন করা:
import mimetypes
mimetypes.init()
mimetypes.types_map['.css'] = 'text/css'
দ্রষ্টব্য: পাইথন 2.7 এবং ক্রোম 40.0 এ জ্যাঙ্গো 1.7.4 এর সাথে আমার পক্ষে কাজ করেছে me
Content-Type: text/plain
, এবং সেগুলি পৃষ্ঠায় রেন্ডার করা হচ্ছে না।
জ্যাঙ্গো -১.১০.৫ এবং পাইথন -২.7.১৩ তে একটি সাইট বিকাশ করার সময় আমি একই ধরণের সমস্যার মুখোমুখি হয়েছি। তবে আমার ফায়ারফক্স -51 এবং ক্রোমে লগইন পৃষ্ঠাটি সিএসএস পেতে সক্ষম হয়েছিল তবে এখনও কোনও স্টাইলিং ছিল না। তবে আশ্চর্যজনকভাবে এটি আইই 8-তে কাজ করছিল ..
আমি এখানে উল্লিখিত প্রতিটি সম্ভাব্য জিনিস করার চেষ্টা করেছি এবং আমার সংস্থার সংস্করণগুলির সেট অনুসারে উপযুক্ত। কারও কাজ হয়নি।
কিন্তু যখন আমি অন্যান্য সিস্টেমে পাইথন -২.7.৮ একই সাইটটি চেষ্টা করেছি তখন এটি কার্যকর হয়েছিল ..
স্রেফ পোস্ট করা যদি এটি কারও সাহায্য করতে পারে ...
সম্পাদিত: পরে আমি পাই যে পাইথন -২.7.১৩৩ এ সেটিংস.পিতে নিম্নলিখিত দুটি লাইন লিখে প্লাস ব্রাউজারের ক্যাশে মুছে ফেলা হয়েছে the
import mimetypes
mimetypes.add_type("text/css", ".css", True)
আমার সমস্যাটি প্রকল্পের জন্য নতুন ভার্চুয়াল পরিবেশ তৈরি করে সমাধান করা হয়েছিল, এর আগে আমি সাধারণ সিস্টেমের স্তরের পাইথন ইন্টারপ্রেটার ব্যবহার করছিলাম।
$ mkvirtualenv myproject
তথ্যসূত্র: https://docs.djangoproject.com/en/2.1/howto/windows/
চালান: python manage.py collectstatic
ভোস্টে এই লাইনটি যুক্ত করুন যা এখানে অবস্থিত: /etc/apache2/sites- উপলভ্য / 1000-default.conf
এলিয়াস / স্ট্যাটিক / অ্যাডমিন / /var/www/html/example.com/static/admin
জ্যাঙ্গো সেটআপের জন্য এখানে পুরো ভোস্ট সেটিং
<VirtualHost *:80>
ServerName gautam.tech
ServerAlias www.gautam.tech
WSGIDaemonProcess gautam.tech python-path=/var/www/html/gautam.tech python-home=/var/www/html/gautam.tech/venv
WSGIProcessGroup gautam.tech
#Your static files location
Alias /static /var/www/html/gautam.tech/static
Alias /media/ /var/www/html/gautam.tech/media
Alias /static/admin/ /var/www/html/gautam.tech/static/admin
<Directory /var/www/html/gautam.tech/static>
Require all granted
</Directory>
<Directory /var/www/html/gautam.tech/media>
Require all granted
</Directory>
WSGIScriptAlias / /var/www/html/gautam.tech/myproject/wsgi.py
DocumentRoot /var/www/html/gautam.tech
<Directory /var/www/html/gautam.tech>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
CustomLog /var/www/html/gautam.tech/access.log combined
ErrorLog /var/www/html/gautam.tech/error.log
</VirtualHost>
এটি নিশ্চিতভাবে কাজ করবে!
ইস্যুটি কোনও ডেভ / টেস্ট / প্রোড সার্ভারে রয়েছে এবং এনগিনেক্স ব্যবহার করছে, দয়া করে নীচের পদক্ষেপগুলি অনুসরণ করুন।
নীচে কিছু হিসাবে সেটিংস.পিতে কনফিগারগুলি সেট করুন
STATIC_URL = '/static/'
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
স্ট্যাটিক ফোল্ডারে CSS এবং js ফাইল তৈরি করতে নীচের কমান্ডটি চালান
$ python manage.py collectstatic
স্থিতিশীল ফাইল পরিবেশন করতে / ইত্যাদি / এনগিনেক্স / সাইটগুলি সক্ষম / উদাহরণ (এনগিনেক্স) এ কনফিগার করুন
location /static/ {
alias /project/root/folder/static/;
}
এটি সূক্ষ্ম এবং সহজেই কাজ করে। আমি ফোল্ডারটি (ম্যানুয়ালি) সরিয়েছি। কেবলমাত্র আপনাকে static/admin
মূল প্রকল্পের ডিরেক্টরি থেকে আপনার অনুলিপি করতে হবে এবং টার্মিনালে আপনাকে নিম্নলিখিত কমান্ডটি চালাতে হবে এমন কোনও স্ট্যাটিক ফোল্ডার না থাকলে এটিকে public_html এ পেস্ট করতে হবে static/
python manage.py collectstatic
এখানে আপনি জাঙ্গো অ্যাডমিনের সিএসএস কাজের সাথে যেতে পারেন
আপনার যদি STATICFILES_DIRS- এর জন্য সেটিংসে একটি মান সেট করা থাকে এবং ঘোষিত ফোল্ডারটি উপস্থিত না থাকে বা ভুল স্থানে থাকে তবে এটি প্রশাসনের কোনও স্টাইল থাকবে না যেমন STATICFILES_DIRS = (os.path.join (BASE_DIR, "স্থিতিশীল") সংজ্ঞায়িত করে )) এবং স্থির ফোল্ডারটি বিদ্যমান নেই
পরামর্শের বিশদ চেষ্টা করেও ব্যর্থ হয়ে অবশেষে আমি একটি সমাধান খুঁজে পেয়েছি যা সহায়তা করেছিল। এখানে আমি চেষ্টা করেছি এবং আমি কী ব্যবহার করছি। আমি django-1.11 এবং nginx ওয়েব সার্ভার ব্যবহার করছি। প্রথমত, আমি নিশ্চিত করেছি যে আমার সিএসএস / জেএস ফাইলগুলি ব্রাউজারের কনসোলে 404 পাচ্ছে না। এর পরে, আমি একটি সতর্কতা দেখতে পেলাম
রিসোর্সকে স্টাইলশিট হিসাবে ব্যাখ্যা করা হয়েছে তবে মাইম টাইপের পাঠ্য / সমতল দিয়ে স্থানান্তর করা হয়েছে
আমি অ্যাডমিন টেম্পলেটগুলিতে base.html খুঁজে পেয়েছি এবং সরিয়েছি
type="text/css"
এবং এখন লাইনগুলি এর মতো দেখাচ্ছে:
<link rel="stylesheet" href="{% block stylesheet %}{% static "admin/css/base.css" %}{% endblock %}" />
এটি আমার জন্য সমস্যাটি স্থির করেছে।
স্ট্যাটিক ফাইলগুলি কনফিগার
করে django.contrib.staticfiles
তা আপনার INSTALLED_APPS এ অন্তর্ভুক্ত রয়েছে তা নিশ্চিত করুন ।
আপনার সেটিংস.পাই ফাইলে STATIC_URL সংজ্ঞা দিন, উদাহরণস্বরূপ:
STATIC_URL = '/static/'
আরও বিশদ জন্য স্থির ফাইল
অ্যাডমিন প্যানেল সিএসএস লোড না করা ব্যতীত ঠিকঠাক কাজ করছিল। এটি আপাচে লাইটসেল জ্যাঙ্গোর পক্ষে কাজ করেছে
1. STATIC_ROOT এবং STATIC_URL এ ডিফাইন করুন settings.py
STATIC_ROOT = '/opt/bitnami/projects/decisions/decision/'
STATIC_URL = '/static/'
প্রকল্পে অ্যাডমিন সম্পদ ফাইলগুলি 2.Eject (অনুলিপি) করুন
চালানো python manage.py collectstatic
এই কমান্ড সৃষ্টি /opt/bitnami/projects/decisions/decision/admin
সঙ্গে ফোল্ডারেরcss/
fonts/
img/
js/
সাবফোল্ডারগুলির করে
3.আপাচে থেকে অ্যাক্সেসযোগ্য / স্ট্যাটিক ইউআরএল তৈরি করুন
এই স্নিপেটটি এখানে আটকান /opt/bitnami/apache2/conf/bitnami/bitnami.conf
(আপনি যদি এসএসএল সেট আপ করেন তবে ফাইলের অবস্থানটি হবে /opt/bitnami/apache2/conf/bitnami/bitnami-ssl.conf
)
Alias /static/ "/opt/bitnami/projects/decisions/decision/"
<Directory "/opt/bitnami/projects/decisions/decision/">
Order allow,deny
Options Indexes
Allow from all
IndexOptions FancyIndexing
</Directory>
4. অ্যাপাচি পুনরায় চালু করতে ভুলবেন না
sudo /opt/bitnami/ctlscript.sh restart apache