मैं उसकेोकू में नया हूं और मैंने सीएसएस के बिना एक साधारण django ऐप की कोशिश की।Django heroku static dir
लेकिन मैं सिर्फ अपनी ऐप्लिकेशन में एक सीएसएस फ़ाइल जोड़ा गया है और जब मैं ऐसा करते हैं:
git push heroku master
स्थिर फ़ाइल संग्रह में विफल रहता है:
:[...]
-----> Collecting static files
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/tmp/build_2unndirli15s7/.heroku/venv/lib/python2.7/site-packages/django/core/management/__init__.py", line 443, in execute_from_command_line
utility.execute()
File "/tmp/build_2unndirli15s7/.heroku/venv/lib/python2.7/site-packages/django/core/management/__init__.py", line 382, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/tmp/build_2unndirli15s7/.heroku/venv/lib/python2.7/site-packages/django/core/management/base.py", line 196, in run_from_argv
self.execute(*args, **options.__dict__)
File "/tmp/build_2unndirli15s7/.heroku/venv/lib/python2.7/site-packages/django/core/management/base.py", line 232, in execute
output = self.handle(*args, **options)
File "/tmp/build_2unndirli15s7/.heroku/venv/lib/python2.7/site-packages/django/core/management/base.py", line 371, in handle
return self.handle_noargs(**options)
File "/tmp/build_2unndirli15s7/.heroku/venv/lib/python2.7/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 163, in handle_noargs
collected = self.collect()
File "/tmp/build_2unndirli15s7/.heroku/venv/lib/python2.7/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 104, in collect
for path, storage in finder.list(self.ignore_patterns):
File "/tmp/build_2unndirli15s7/.heroku/venv/lib/python2.7/site-packages/django/contrib/staticfiles/finders.py", line 105, in list
for path in utils.get_files(storage, ignore_patterns):
File "/tmp/build_2unndirli15s7/.heroku/venv/lib/python2.7/site-packages/django/contrib/staticfiles/utils.py", line 25, in get_files
directories, files = storage.listdir(location)
File "/tmp/build_2unndirli15s7/.heroku/venv/lib/python2.7/site-packages/django/core/files/storage.py", line 235, in listdir
for entry in os.listdir(path):
OSError: [Errno 2] No such file or directory: '/home/kevin/web/django/appheroku/blogapp/static'
! Heroku push rejected, failed to compile Python/django app
To [email protected]:[...]
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to '[email protected]:[...]'
यहाँ मेरी settings.py है
[...]
STATIC_ROOT = '/home/kevin/web/django/appheroku/staticfiles'
STATIC_URL = '/static/'
STATICFILES_DIRS = (
'/home/kevin/web/django/appheroku/blogapp/static',
)
[...]
urls.py:
[...]
if settings.DEBUG:
urlpatterns += staticfiles_urlpatterns()
Procfile:
web: python appheroku/manage.py collectstatic --noinput; bin/gunicorn_django --workers=4 --bind=0.0.0.0:$PORT appheroku/monblog/settings.py
ऐसा लगता है यहां तक कि '/ घर/केविन/वेब/Django/appheroku/blogapp/स्थिर' निर्देशिका मौजूद है, यह पता नहीं है और मैं बाहर क्यों समझ नहीं सकता। :(
कृपया मेरी मदद करो ^^
संपादित करें:
अब मेरी settings.py इस तरह दिखता है:
import os
PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__))
PROJECT_DIR = os.path.join(PROJECT_ROOT,'../blogapp')
[...]
STATIC_ROOT = os.path.join(PROJECT_ROOT,'staticfiles/')
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(PROJECT_DIR,'static/'),
)
[...]
और अब स्थिर फ़ाइल संग्रह कदम अच्छी तरह से काम करने लगता है:
-----> Collecting static files
74 static files copied.
एक और समस्या थी: मेरी procfile में, 'एफेरोक u/manage.py ',' bin/gunicorn_django 'और' appheroku/monblog/settings.py 'नहीं मिला। मैं इसे ठीक किया गया और अब मेरी procfile इस तरह दिखता है:
web: python manage.py collectstatic --noinput; gunicorn_django --workers=4 --bind=0.0.0.0:$PORT monblog.settings
एप्लिकेशन अब और क्रैश नहीं होता, लेकिन अभी भी कोई सीएसएस है। यहाँ लॉग है:
'2012-05-31T17:35:16+00:00 heroku[router]: GET xxxx-xxxx-number.herokuapp.com/ dyno=web.1 queue=0 wait=0ms service=85ms status=200 bytes=1054
2012-05-31T17:35:17+00:00 heroku[router]: GET xxxx-xxxx-number.herokuapp.com/static/css/style.css dyno=web.1 queue=0 wait=0ms service=5ms status=404 bytes=2088
2012-05-31T17:35:17+00:00 heroku[router]: GET xxxx-xxxx-number.herokuapp.com/static/js/jquery-1.7.2.min.js dyno=web.1 queue=0 wait=0ms service=5ms status=404 bytes=2115'
EDIT3:
हाँ! यह ^^ काम करता है समस्या मेरी urls.py में थी। मैं ने लिखा है:
[...]
if not settings.DEBUG:
urlpatterns += staticfiles_urlpatterns()
बजाय
[...]
if settings.DEBUG:
urlpatterns += staticfiles_urlpatterns()
त्रुटि नहीं था मेरा संदेश में .. हाँ, यह वास्तव में मुश्किल के लिए मुझे मदद करने के लिए किया गया था। (क्षमा करें) मुझे बहुत बेवकूफ लगता है ^^ '
अब मैं इस संपादन का उपयोग कुछ संशोधन के साथ करता हूं जैसा कि मेरे संपादन में बताया गया है। (क्योंकि मेरा स्थिर डीआईआर ('स्थिर /') मेरे ऐप डीआईआर ('ब्लॉगएप /') के अंदर है)। यह मेरी समस्या का समाधान करता है (अब भी मैं एक और के साथ हूं-_-) – heathen90
क्या इस सेटिंग फ़ाइल की मूल निर्देशिका में 'blogapp/'है? ऐसा लगता है कि 'ब्लॉगएप', सेटिंग फ़ाइल के समान निर्देशिका में है जिसका अर्थ है कि आपको '../ blogapp' के बजाय 'blogapp /' में शामिल होना चाहिए। –
एपहेरोकू/मोनब्लॉग/निर्देशिका, ब्लॉगएप/निर्देशिका और staticfiles निर्देशिका शामिल है। Blogapp/निर्देशिका में models.py फ़ाइल, scen.py फ़ाइल, admin.py, .. (आदि) और स्थिर/dir शामिल हैं। Monblog/निर्देशिका में सेटिंग्स.py, urls.py, आदि शामिल हैं ... – heathen90