מדריך: בניית אתרים סטטיים
-
לאחרונה יצא לי להכיר את הנושא של בניית אתרים סטטיים
ונראה לי שזה יכול להועיל לחברים כאן
קחו בחשבון שאני לא יודע את כל המאפיינים של בניית אתרים בכלל ואתרים סטטיים בפרט
אז אני אשמח מאוד לשמוע הערות באשכול נפרד
אז בא נתחיל...בעיקרון יש שתי דרכים לבנות אתר אינטרנט
- אתר סטטי
שזה אומר לכתוב דפים HTML ולגשת אליהם עם שרת אפאצ'י וכדומה (השרת זה בעצם תוכנה שמציגה את תוכן הקובץ ללקוח) - אתר דינמי
שזה אומר שהשרת קורא לסקריפט שיוצר את התוכן של הHTML בכל קריאה מחדש ומציג את התוצאה ללקוח
המעלות של אתר דינמי הם שלרוב זה יהיה עבודה קשה לכתוב מחדש את התבנית של האתר ואת כל הלינקים הפנימיים וכו'
וכמובן אם רוצים לבנות אתר שיציג לכל לקוח תוכן אחר זה (כמעט) בלתי אפשרי עם אתר סטטי
בגלל כל הנ"ל כנראה זו הסיבה שוורדפרס הוא הפלטפורמה הכי נפוצה לבניית אתריםאבל בוורדפרס וכדומה יש חסרון שכל ביקור באתר דורש שימוש מיותר במעבד
בשביל להריץ את הקוד PHP שקורא מהמסדי נתונים וכו' וכו'
כאן מגיעים פלטפורמות הSSG (ר"ת של Static Site Generators)
שבעצם אוספים את כל הנתונים ושומרים את הכל בדפים סטטיים
אחרי כל שנוי באתר ולא בכל קריאה מהשרת
וככה חוסכים בהרבה משאבים מיותרים שוורדפרס דורש
וכן אפשר להוסיף אוטומציה שתעלה את כל הקבצים הסטטיים לS3 וכדומה
ואז בכלל מורידים מהראש את החשש מנפילה של האתר בעומסים(האמת היא שאני אף פעם לא בניתי אתר בוורדפרס אז אני לא יודע מתי מרגישים את העומסים
אבל מה שבטוח שבאתרים סטטי צריך לדאוג בעיקרון רק לרוחב פס
אמנם יש שימוש במעבד בשביל השרת HTTP אבל לכאורה זה אמור להיות משמעותי)וכמובן לכל דבר יש חסרונות
אז אני ימנה את החסרונות שאני נתקלתי בהם אבל כנראה שיש יותר- וורדפרס זה מערכת וותיקה, ויש בה כמעט הכל, עם אלפי תוספים, ולא צריך להמציא את הגלגל מחדש
- לוורדפרס יש מערכת ניהול ויזואלית מאוד מתקדמת עם הרבה פיצרים
ובפלטפורמות הSSG אין בעיקרון מערכות כאלו
אלא הוספת דפים נעשית ע"י קבצי MD (סינטקס כמו הפורמום הזה)
ושאר עיצוב הדף נעשה ע"י HTML כמובן שאפשר להוסיף JS
יש כמה מערכות שפיתחו שנותנים אפשרות לעורך MD משולב מאתר כדי שיהיה נוח להעולת דפים
אבל זה עדיין לא נראה לי כמו העורכים של וורדפרס
אמנם ראיתי באחד הפורומים שמישהו הציע אפשרות להשתמש בוורדפרס כפלטפורמה להעלאת תכנים לאתר סטטי
לא ניסיתי את זה אבל זה יכול להיות פתרון טוב
בעז"ה בהמשך אני יכתוב מדריך לבניית אתר עם hugo
אמנם אני משער שיהיו כאלו שיעדיפו פלטפורמה מבוססת נוד
אבל אני חושב שhugo יותר פשוט להבנה (ובעיקר כי את זה אני מכיר) - אתר סטטי
-
התקנת hugo (לינוקס)
קודם נוריד את החבילה העדכנית
curl -s https://api.github.com/repos/gohugoio/hugo/releases/latest \ | grep browser_download_url \ | grep Linux-64bit.deb \ | grep -v extended \ | cut -d '"' -f 4 \ | wget -i -
ואז נתקין
sudo dpkg -i hugo*_Linux-64bit.deb
נבדוק שזה הותקן כראוי
hugo --help
ניצור תיקיה בשם hugo שתהיה הסביבת עבודה שלנו
mkdir hugo cd hugo
וניצור בתוכו את התיקיה שתכיל את האתר שלנו
hugo new site my_site
ונוריד תבנית לאתר (ניתן לבחור תבניות שונות כאן)
git clone https://github.com/calintat/minimal.git my_site/themes/minimal cp -r themes/minimal/exampleSite/* .
ועכשיו נפעיל את השרת (שימו לב שצריך להחליף את my-url לכתובת של האתר שלכם)
hugo server -D -b=http://my-url --bind=0.0.0.0
אם הכל נעשה נכון, עכשיו האתר זמין ב http://my-url:1313
ובקיצור
mkdir hugo cd hugo hugo new site my_site git clone https://github.com/calintat/minimal.git my_site/themes/minimal cp -r themes/minimal/exampleSite/* . hugo server -D -b=http://my-url --bind=0.0.0.0