
ãã®èšäºã¯ããªããåŸ ã£ãŠããŸã
-DiemããŠã§ããã¹ã¿ãŒã®ç掻ã楜ã«ããæ¹æ³ã®ããã€ãã®äŸ
-ããªããééãããããããªãèœãšãç©Žãããã³å¯èœãªè§£æ±ºç
-Diemãååãšæ ¹æ¬çã«ç°ãªãïŒããè¯ãïŒæ¹æ³ã«ã€ããŠã®ããã€ãã®å²åŠçè°è«
-ãããã¯ã«é¢é£ããèå³æ·±ãäºå®
-ã¹ã¯ãªãŒã³ã·ã§ãããšã³ãŒãäŸãšãšãã«
ããã¯ããªã¥ãŒã ããããå®è³ªçã§ããããšãå€æããŸããã
ç·Žç¿ãã
ãŸããã
éå»2ãæã§ããã®CMSã«5ããŒãžãã2,000ããŒãžãŸã§ã®6ã€ã®ãµã€ããäœæããŸããã2ã€ã®ãµã€ãã¯å ±æãã¹ãã£ã³ã°ã«ã2ã€ã¯VPSãµãŒããŒã«ãããŸãã ã©ãã§ã128 MBã®ã¡ã¢ãªã
ã¿ãŒã«
ããããã®æ £è¡ã¯ãçŸæç¹ã§ã®åŸæ¥ã®å ±æãã¹ãã£ã³ã°ã§ã®Diemã®äœ¿çšã¯ããŸããããŸãã...
第äžã«ã48 MBæªæºã®ã¡ã¢ãªå¶éã¯
Fatal error: Allowed memory size of X bytes exhausted
ãåŒãèµ·ããå¯èœæ§ããã
Fatal error: Allowed memory size of X bytes exhausted
ãçŽ8 MBãããŒãžã¡ã³ããã³ã¹ã«äœ¿çšãããŸãããã·ã¹ãã ã³ãŒã«ïŒèšå®ã®æŽæ°ãæ€çŽ¢ã¹ãã£ã³Zend_Search_Luceneãªã©ïŒã¯ããå€ãã®ã¡ã¢ãªã䜿çšããŸãïŒå¯èœæ§ããããŸãïŒäžéšã®å Žæã§ã¯ãéçºè ã¯é·ããµã€ã¯ã«äžã«ã¡ã¢ãªã®å å¡«ãå¶åŸ¡ããã®ãå¿ããŠããŸããïŒ
第äºã«ãæšæºã®
./configure
èšå®ã§APCãã£ãã·ã³ã°ãååšããªãå ŽåãDiemã¯çŽ2ç§éããŒãžãåŠçããŸãïŒããã¯åæ§ã®æ§æã§200msã§ãããAPCã§ïŒ ã ããã¯ç§ã®æšæž¬ã§ããå®éã«ã¯ãã¹ã¯ãªããã¯2000msã®ä»®æ³ãã¹ãã£ã³ã°ã§å®è¡ãããVPS 200msã§ã¯APCããã¡ãã¡ã«ã€ã³ã¹ããŒã«ãããŠããŸãããå ±æãã¹ãã£ã³ã°ã®POSIXå ±æã¡ã¢ãªã®ã·ã¹ãã ãµããŒãã¯ãããŸããã ããã¯äºå®ã ãšæããŸãããä»ã®ãªãã·ã§ã³ã¯é€å€ãããŠããŸããã
ç°ãªãæ§æã§APCãæ§æããéçšã§ããã®ããã¥ã¡ã³ãã¯äœãèµ·ãã£ãŠããããç解ããã®ã«åœ¹ç«ã¡ãŸããã

ã¯ã¡ã¿ã€
å¿«é©ããïŒã·ã¹ãã ã®æãããªéãã«ãããããããreg.ruããæãå®ãVPSã§ãç§ã¯éãã«5ã€ã®ãµã€ããšä»²è¯ããªãããã¹ãŠã®äººã«ååãªã¡ã¢ãªããããããŒãžã¯ãªã¯ãšã¹ãã®200msåŸã«è¿ãããŸãã Diemã«ã¯äžå©ãªç¹ãããå€ãã®å©ç¹ãããããšãèãããšããã®äºå®ã«éåžžã«æºè¶³ããŠããŸããããã«ã€ããŠã¯ãããã§ã¯ãªãã以äžã®æçš¿ã§èª¬æããŸãã
å°ãããŠãåå¿ã®è¯ãã³ãã¥ããã£ã楜ããã§ãã å¿çã®éãããå€æãããšãããããããŒã¯æ¯æ¥ã³ãã¥ããã£ã«ã¢ã¯ã»ã¹ããGoogleã«éä¿¡ãããã®ã§ã¯ãªããå¿çããææããããŸãã ïŒProvlinkiïŒ 1ã2 ïŒ
Symfonyã®æé«ã®äŒçµ±ã§ã¯ãDiemã¯ä»¥äžãå«ãé«å質ã§æ確ãªããã¥ã¡ã³ãã«æ¯ããããŠããŸãã
-é±ãã£ãšã
7æ¥éã§éçºã«æ²¡é ããå®éã«ã¯2æéã§æ¯é±ã®ã³ãŒã¹ã®ãã¹ãŠã®ã¹ããããè¡ãããšãã§ããŸã
-äžè¬çãªã¿ã¹ã¯ã®äœ¿ãæ¹ã®ãã³ã
-ããã³CMSã®ãã¹ãŠã®æ©èœã®è©³çŽ°ãªã¹ããããã€ã¹ãããã®èª¬æ
ããã«ãã³ãã¥ããã£ã«ã¢ããã€ã¹ãæ±ããããšãã§ãããã©ãŒã©ã ãšGoogleã°ã«ãŒãããããŸãã
ããã¯ãã¹ãŠoff.site diem-project.orgã«ãããŸã
ããããã diem-project.ruãè±èªãèŠæãªäººã«ãšã£ãŠæçšã§ããããšãå®å šã«å¿ããŠããŸãã-diem-project.orgã®éšåçã«ç¿»èš³ãããã¯ããŒã³ããã®äœæè Vladislav Lezhnevã¯æåŸã®æçš¿ã®åŸã«é£çµ¡ãåããDiemã«ã€ããŠå°ã話ããåºæ¬çã«åæããŸãããã®CMSã¯æ³šç®ã«å€ãããã®ã§ããã䜿çšãã¹ãã§ãããšã®æèŠã

å²åŠ
ã³ã³ãã³ã管çã®äž»ãªã¢ã€ãã¢ã¯ããããã³ã°ã§ãã åŸæ¥ã®CMSã§ã¢ãããã¯ã³ã³ãã³ããŠããããããŒãžïŒããã¹ãã§ããã©ãã®ã£ã©ãªãŒã§ãïŒã§ãããããŒãžäžã®ãããã¯ã®äœ¿çšãè¿œå ã§å®è£ ãããå€ãã®å Žåéåžžã«äžäŸ¿ãªå ŽåãDiemã§ã¯ã¢ãããã¯ã³ã³ãã³ãã¯ãããã¯ã§ãïŒãŠã£ãžã§ããã§ããããŸãïŒã
ãã®çµæãã³ã³ãã³ãæ§é ã¯æ¬¡ã®ããã«ãªããŸãããã³ãã¬ãŒã->ãŸãŒã³->ããŒãž->ãŠã£ãžã§ãã
ããšãã°ã2åãš3åã®2ã€ã®ãã³ãã¬ãŒããäœæãããŠã£ãžã§ãããé 眮ã§ããããŒãžãŸãŒã³ã決å®ããŸããã ããã§ã³ãŒãã£ã³ã°ãçµäºãããµã€ãã®ç®¡çãéå§ãããŸãã ããŒãžãäœæããå¿ èŠãªãããã¯ããŸãŒã³ã«ãã©ãã°ã¢ã³ããããããããããã¯ãåå¥ã«ç·šéã§ããŸãã ç¹å¥ãªæ©èœãå¿ èŠãªå Žåã¯ãã¢ãžã¥ãŒã«ïŒä»¥äžã®ã¢ãžã¥ãŒã«éçºã®äŸïŒãäœæããŸããã¢ãžã¥ãŒã«ã¯ããããã¯ãšãã®ãããã¯ã®ã³ã³ãã³ãã®ç¹å®ã®åŠçãè¡ããŸãã ãããŠãæ°ããç¹å®ã®ãããã¯ãå¿ èŠãªå Žæã«ãå¿ èŠãªãšãã«è¿œå ããŸãã ã¯ã©ã€ã¢ã³ã顧客ã¯ãããè¡ãããšãã§ããŸãã
ããšãã°ã以åã¯ãµã€ãããŒã§ããã€ãã®ãããã¯ã亀æããå¿ èŠããã°ãã°ãããŸããïŒãããã¯ã®å Žæã¯ãã³ãã¬ãŒãã§ããŒãã³ãŒãã£ã³ã°ãããŠããŸããïŒããã¡ãããããã¯è¿ éãã€ç°¡åã«è¡ãããŸãããããã³ãã«ãšã³ãŒãã§è¡ãããŸããã ãããŠãããã«çæããããŸãïŒé¡§å®¢ã®ããã®é·ãå€åãç·šéäžã«ãšã©ãŒãèµ·ããå¯èœæ§ã ããã§ãã¯ã©ã€ã¢ã³ãèªèº«ãå¿ èŠã«å¿ããŠãããã¯ãæå®ã®å Žæã«åé 眮ã§ããŸãã
ããŒãžã³ã³ãã³ãã®ç®¡çã®äŸã瀺ããŸãã

ãã®å³ã§ã¯ãããŒãžããŸãŒã³ãšãŠã£ãžã§ããïŒãããã¯ïŒã«åå²ãããŠããããããããã©ãã°ã§ããããšãããããŸãã

ãã®å³ã§ã¯ãéããŠããã¡ãã£ã¢ã®ã£ã©ãªãŒããã³ãããªã¹ããŠã£ãžã§ããç·šéãŠã£ã³ããŠãããã³ããŒãžã«è¿œå ã§ãããŠã£ãžã§ããããã«ã衚瀺ãããŠããŸãã
ç¬èªã®ã¢ãžã¥ãŒã«ãäœæããããšããŠããŸã
æåŸã®ãããžã§ã¯ãã®ç涯ããäŸãæããŸããåœããšã®éšéãšãåœç¶ã®ããšãªãã管çã®å¯èœæ§ãåããããã«ã®ããŒã¿ããŒã¹ãäœæããå¿ èŠããããŸãã ããã«ã¯ã©ããããæéãããããšæããŸããïŒ èŠãŠã¿ãŸããã...
ã¹ããã1
ãŸãæåã«ãããŒã¿ããŒã¹ãèšèšããŸãïŒDoctrineãšYAMLãã¡ã€ã«ã䜿çšããŠããããè¡ãã®ã¯æ¥œããã§ãïŒïŒ
Hotel :<br/> actAs : [ DmSortable, DmGallery ] <br/> columns :<br/> name : { type : string( 255 ), notnull : true } <br/> country_id : { type : integer } <br/> url : { type : string( 255 ) } <br/> text : { type : clob, extra : ckeditor } <br/> is_active : { type : boolean, notnull : true , default : true } <br/> rating : { type : float } <br/> status : { type : integer( 4 ), default : 0 } <br/> votes : { type : integer } <br/> relations :<br/> Products : { foreignAlias : Hotels, class : Product, refClass : ProductHotel } <br/> Country : { foreignAlias : Hotels } <br/> <br/> Country :<br/> columns :<br/> name : { type : string( 255 ), notnull : true } <br/> slug : { type : string( 255 ), notnull : true } <br/>
ããã«ã®ããŒãã«ãåœã®ããŒãã«ããããã®éã®é¢ä¿ãªã©ãå¿ èŠãªãã®ã¯ãã¹ãŠç€ºãããããã§ãã ãã®ã³ãŒãã«ã¯ã
is_active, DmSortable, DmGallery extra: ckeditor.
ãããžã§ã¯ãå šäœã®ããŒãã«ã®åäœãã°ããŒãã«ã«å®çŸ©ããããã€ãã®Diemè¡šèšãå«ãŸããŠããŸã
is_active, DmSortable, DmGallery extra: ckeditor.
is_active
ã®æå³ã¯ãããã«ã®ãªã¹ãã«ã¯ãã¢ã¯ãã£ãããªããžã§ã¯ããšãéã¢ã¯ãã£ãããªããžã§ã¯ããããããšãä»ãdiemãç¥ã£ãŠãããšããäºå®ã«ãããŸãã 管çäžã§ãajaxã¢ã¯ãã£ããã£ãä»ããŠç®¡çããããšãã§ããããŒãžã§è¡šç€ºãããšãã¢ã¯ãã£ããªã¬ã³ãŒãã®ã¿ã衚瀺ãããŸãã
extra: ckeditor
ã¯ç·šéæã«
extra: ckeditor
è¿œå ããŸãã
DmSortable
ããã«ã®ãªã¹ããæåã§ãœãŒãã§ããŸã
DmGallery
ç¡å¶éã®æ°ã®åçãåããã«ã«æ·»ä»ã§ããŸãã ãã¹ãŠã®ãã¡ã€ã«ã¯ãMediaã³ã³ããŒãã³ãã䜿çšããŠDiemã«ä¿åããã³ç®¡çãããŸãã ç»åãããŒãããããããŸããŸãªæ¹æ³ã䜿çšããŠãµã€ãºã«ããªãã³ã°ãããããããã«ç¬èªã®ãã³ãã©ãŒãèšè¿°ããå¿ èŠã¯ãããŸãããããã«ããã³ãã¬ãŒãã§ã¯ä»»æã®ãµã€ãºã®ç»åãæå®ã§ããŸãã
ã¹ããã2
次ã«ã ã¢ãžã¥ãŒã«ãšã³ã³ããŒãã³ãã®ãšã³ããªãæŽçããæ¹æ³ãã·ã¹ãã ã«æ瀺ããå¿ èŠããããŸã ãããã¯ã察å¿ããèšå®ãã¡ã€ã«ã§YAMLã䜿çšããŠå床è¡ãããŸãã
"" :<br/> <br/> hotel :<br/> model : Hotel<br/> page : true <br/> name : '|' <br/> admin : true <br/> components :<br/> searchForm :<br/> name : ' ' <br/> searchResults :<br/> name : ' ' <br/> show :<br/> <br/> country :<br/> model : Country<br/> name : '|' <br/> admin : true <br/>
ç§ãã¡ããã£ãããšïŒããã«ã®ãšã³ããªã¯ããŒãžã§ãããããã«ãšåœã«ã¯ç®¡çã€ã³ã¿ãŒãã§ãŒã¹ãå¿ èŠã§ãããããã³ããšã³ãã«ã¯ããã«ãã¥ãŒãããã«æ€çŽ¢ãã©ãŒã ãæ€çŽ¢ãã©ãŒã çµæã®ãããã¯ãå¿ èŠã ãšåœŒãã¯èšããŸããã ããã«ãããŒã¯ãŒã
list show
ããã³ããšã³ãã®ã³ã³ããŒãã³ãåã§ã®
list show
ã«ããããªã¹ããŸãã¯åäžãªããžã§ã¯ãã®éžæãèªåçã«çæã§ããŸãïŒããŒã¿ããŒã¹ã¯ãšãªãèšè¿°ããå¿ èŠã¯ãããŸããïŒã
ããŒã¿ããŒã¹ã¹ããŒããšã¢ãžã¥ãŒã«ã¹ããŒãã®èª¬æã®åŸãã³ã³ãœãŒã«ã§å®è¡ããŸãã
symfony doctrine:generate-migrations-diff
symfony doctrine:migrate
symfony dm:setup
çæãããORMã¢ãã«ããã£ã«ã¿ãŒãDoctrineãã©ãŒã ãããã«ããã³åœã管çããããã®ç®¡çã¢ãžã¥ãŒã«ããå¿ èŠãªã¢ã¯ã·ã§ã³ãšãã³ãã¬ãŒãã®ãã¹ãŠã®ã»ãããšãšãã«ååŸããŸãã


20åéã®æéãšçŽ200æåã®å°å·ã§æªããããŸããã ç§ã¯æ laãªäººãšããŠãæšæºæ©èœãçæããå¯èœæ§ãåãã§ããã匷åã§é«å質ã®æ©èœãæãã人ãšããŠãç§ã¯ã·ã§ãã¯ãåããŸãããããšãã°ãç¹å®ã®ãã£ãŒã«ãã«ãããã£ã«ã¿ãªã³ã°ããã¹ãŠã®ã³ã³ãã³ãã§ã®ãã«ããã¹ãæ€çŽ¢ãå¯èœã§ãã¢ãžã¥ãŒã«ã
ããããŠããã ãã§ã¯ãããŸããïŒãïŒCïŒ
ã®ãããšããŠãããã³ããšã³ãçšã«çæããããã³ãã¬ãŒããååŸããããŒãžã®ä»»æã®é åã«ãã©ãã°ã¢ã³ãããããã§ããããã«ãªããŸãã æ®å¿µãªãããDiemã¯å¿ã®èªã¿æ¹ãã¿ã€ãã»ãããããã³ãã¶ã€ã³ã®äœææ¹æ³ãç¥ããŸããããããã£ãŠããã®äœæ¥ã¯èªåã§è¡ãå¿ èŠããããŸãããããã§ã¯å¬ããé©ãããããŸãã ãªããªã ãã®èšäºã¯æ¢ã«è¥å€§åããŠããŸãããããã«ãªã¹ãããããã¯ã®äŸãæããŸãã
<?php <br/> <br/> echo _open( 'div.product_list' );<br/> <br/> echo _open( 'ul.smartcolumns' );<br/> <br/> foreach ( $hotels as $hotel )<br/>{<br/> $url = _link( $hotel )->getHref();<br/> $data = 'infotext' ;<br/> <br/> ?> <br/> <li style= "cursor:pointer;" onclick= "window.location = '<?php echo $url ?>';" ><div class = "block hotel" ><br/> <a href= "<?php echo $url ?>" ><br/> <?php if ( $hotel ->getNbMedias()) echo _media( $hotel ->getFirstMedia())->width( 100 ) ?> <br/> </a><br/> <div class = "txt" ><br/> <a href= "<?php echo $url ?>" ><b class = "name" > <?php echo $hotel ->name ?> </b></a><br /><br/> <div class = "txt2" > <?php echo $hotel ->rating ?> </div><br/> <?php echo $data ?> <br /><br/> </div><br/> </div></li><br/> <?php <br/>}<br/> <br/> echo _close( 'ul' );<br/> <br/> echo _close( 'div' );<br/> <br/>use_javascript( '/js/smartcolumns.js' ); <br/>
ãããŠãæ€çŽ¢ãã©ãŒã ããªãŒãã³ã³ããªãŒãããã¢ã¯ã·ã§ã³ã®äŸïŒ
<ïŒphp
/ **
*ããã«ã¢ã¯ã·ã§ã³
* /
ã¯ã©ã¹ hotelActions 㯠myFrontModuleActionsãæ¡åŒµããŸã
{
ãããªã㯠é¢æ° executeAutocomplete ïŒ dmWebRequest $ request ïŒ
{
$ query = $ request- > getParameter ïŒ 'query' ã 0 ïŒ ;
if ïŒ $ query ïŒ
{
$å¶é = 10 ;
$ q = RequestFilter :: sanitizeString ïŒ $ query ïŒ ;
$ query = Doctrine_Query :: create ïŒ ïŒ
-> éžæ ïŒ 'h.idãh.name' ïŒ
-> ïŒ 'Hotel h' ïŒãã
-> where ïŒ "LOWERïŒnameïŒREGEXP '^ {$ q} ã* | [^-] [-] {$ q} [^ïŒ] * $'" ïŒ
-> orderBy ïŒ 'h.rating DESCãh.name ASC' ïŒ
-> limit ïŒ $ limit ïŒ ;
$ res = $ query- > execute ïŒ ïŒ ;
if ïŒ count ïŒ $ res ïŒ ïŒ
{
$ json = array ïŒ
'ææ¡' => é å ïŒ ïŒ ã
'data' => é å ïŒ ïŒ ã
ïŒ ;
foreach ïŒ $ res as $ key => $ val ïŒ
{
$ json [ 'suggestions' ] [ ] = $ val- > name ;
$ json [ 'data' ] [ ] = $ val- > id ;
}
$ this- > getResponse ïŒ ïŒ -> setContentType ïŒ 'application / json' ïŒ ;
return $ this- > renderText ïŒ json_encode ïŒ $ json ïŒ ïŒ ;
}
}
return sfView :: NONE ;
}
}
説æãããã¹ãŠã®æ©èœã®ã¬ã€ã¢ãŠããšã¢ã¯ã·ã§ã³ã«ã¯çŽ2æéããããŸããã
èœãšãç©Ž
äžèšã§èšãã°ãéçºäžã«ã©ããªå°é£ãåŸ ã¡åããŠãããã瀺ããŸãïŒã·ã¹ãã ã¯æªå å·¥ã§ãªãŒãã³ãœãŒã¹ã®ãŸãŸã§ãïŒ
1.ããŒãæã«ããã·ã¢èªã®ãã¡ã€ã«ã®ååã¯å€æŽãããŸãããURLã®çææã«ããã¡ããurl-validæåãžã®å€æãçºçããŸãããäžéšã®ãã¡ã€ã«ãããŒãåŸã«åçŽã«æ¶ãããšããåé¡ããããŸããã ããæ£ç¢ºã«ã¯ããã¡ã€ã«ã·ã¹ãã ãšããŒã¿ããŒã¹ã«æ®ã£ãŠããŸããããDiemã¯ããããèªèããŸããã§ããã ããã§ã®çç±ã¯ãmb_string_functionsã®ä»£ããã«éæšå¥šã®é¢æ°ã䜿çšããŠããããã ãšæããŸãã ãã©ã³ã¹äººã¯UTF-8ã®è¡ã«åºäŒãã¯ãã§ããã...äžè¬ã«ãç§ã¯ããŸãæãäžããªãã£ãã®ã§ããã¡ã€ã«åãurlã®æå¹ãªæåã«å€æããããšã§æ±ãããŸããïŒa-z0-9_-
2.ã¡ãã£ã¢ã®ã£ã©ãªãŒã«ã¢ã¯ã»ã¹ãããã³ã®ã¡ã¢ãªæ¶è²»éã¯ããã¡ã€ã«ã®å¢å ãšãšãã«å¢å ããŸããããã¯ã倧èŠæš¡ãªãããžã§ã¯ãã§ã¯åãå ¥ããããŸããã 500MBã®ç»åãå«ãããã«ã®ããŒã¿ããŒã¹ã®å Žåãã¡ãã£ã¢ã©ã€ãã©ãªã¯éãããšãæåŠããŸããã
ã³ãŒãã詳ãã調ã¹ãŠã¿ããšãã©ã€ãã©ãªãªããžã§ã¯ãã«ã¢ã¯ã»ã¹ãããã³ã«åæåŒã³åºããèŠã€ãããŸãããããã«ãããããŒã¿ããŒã¹å ã®ã¹ãã¬ãŒãžã®ãã©ã«ããŒãšãã¡ã€ã«ã®æ§é ã«é¢ããæ å ±ãææ°ã«ãªããŸãïŒçªç¶FTPçµç±ã§ãã¡ã€ã«ãã¢ããããŒãããŸãïŒã
ãã®ã¯ãªãœãŒã¹éçŽåã§ãããããã»ã©å¿ èŠã§ã¯ãããŸããã ãã¡ã€ã«ã¯ç®¡çã€ã³ã¿ãŒãã§ã€ã¹ããã®ã¿ããŠã³ããŒããããããšã«ãªã£ãŠããŸããåæã®ããã«è¡ãã³ã¡ã³ãã¢ãŠãããŠèœã¡çãããŠãã ããã
3. Diemã¯ããã¹ãŠã®CSSããã³JavaScriptãã¡ã€ã«ãçž®å°ããã³çµåããŠãããŒãžã®ã¬ã³ããªã³ã°ãé«éåããŸãã ãŸããYahooã®
ãŸãšã
1.ããã§ãDiem CMSãšã¯äœãããã®CMSã䜿çšããŠåŸãããéçºäžã®å©ç¹ãããã³ã³ã³ãã³ã管çãã©ãã€ã ãä»ã®CMSãšã©ã®ããã«ç°ãªãããããããŸããã
2. VPSãŸãã¯å°çšãµãŒããŒã§Diemã䜿çšã§ããããšã¯ããã£ãŠããŸãããå ±æãã¹ãã£ã³ã°ã§ã¯è©Šããªãæ¹ãè¯ãã§ãããã ïŒãã ããå®éšã®ããã«ããã¹ãã£ã³ã°ã§ããŒãžãçæããã®ã«ãããæéãããªç§ã§ç¥ãããšã¯èª°ããèå³ãæã£ãŠãããšæããŸãïŒ
3.ããªãã¯ããªãèªèº«ã®ã¢ãžã¥ãŒã«ãéçºããäŸã«ç²ŸéããŸããããããŠç§ã¯ãDiemã§ããªãããããããªãã®å®å šãªæã§ç°¡åãã€è¿ éã«ã§ããããšã確èªããããšãæã¿ãŸãã
4.ããªãã¯ãã©ã®ãããªå°é£ãçããå¯èœæ§ããããããããå æããããåŠã³ãŸããã
ç§ãäŒãããããšã®ãã¹ãŠããã®èšäºã«åœãŠã¯ãŸãããã§ã¯ãããŸããã SEOã®æé©åããŠãŒã¶ãŒã¢ã¯ã»ã¹å¶åŸ¡ã®èšå®ãããã³ã¬ã€ã¢ãŠãã®ãã°ã解æ¶ããããã®å°ããªCSSã®å€æŽã«é¢ãã質åã¯ã説æãããŠããŸããã§ããã ãããã®ãããã¯ã次ã®èšäºã«åããäºå®ã§ãã
PSïŒãšã©ãŒãèŠã人ã¯èª°ã§ãé»ã£ãŠå人çãªæçŽãæžãããšã¯ã§ããŸãã-ç§ã¯æè¬ããããã«ãããä¿®æ£ããŸãã