рдХреЛрд╣рдирд╛ рдореЗрдВ рдореАрдбрд┐рдпрд╛ рдлрд╝рд╛рдЗрд▓ рдирд┐рдпрдВрддреНрд░рдХ

рдирдорд╕реНрддреЗ!
рдпрд╣ рд▓реЗрдЦ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдиреЗ рдХреА рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдлреНрд░реЗрдорд╡рд░реНрдХ рдкрд░ рд╡реНрдпрд╛рдкрдХ рдкреНрд░рд▓реЗрдЦрди рдХреА рдХрдореА рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдЙрдирдореЗрдВ рд╕реЗ рдХрдИ рд╣реИрдВ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ рд╡реИрд╕реЗ рднреА рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред
рдЗрд╕ рд▓реЗрдЦ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдХреЛрд╣рдирд╛ рдкрд░ рдореАрдбрд┐рдпрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдЬреБрдбрд╝реЗ рдХрдИ рд╕рд╡рд╛рд▓ рдФрд░ рдХреЛ 3 рдкрд░ рдХрдИ рд╕реЛрд░реНрд╕ рдХреЛрдб рдСрдлрд╝ рдХреЛрдбреНрд╕ рдореЗрдВ рдХреЛрдб рдХреЗ рдХреБрдЫ рдкреНрд░рд╢реНрди рднреА рджрд┐рдП рдЧрдП рдереЗ, рдЬрд┐рдирдХреА рдореИрдВрдиреЗ рд╕рдореАрдХреНрд╖рд╛ рдХреА рдереА (рдореБрдЭреЗ рдЗрд╕ рд░реВрдкрд░реЗрдЦрд╛ рдкрд░ рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдкрд╕рдВрдж рд╣реИ - рдХрднреА-рдХрднреА рдпрд╣ рдкреНрд░рд▓реЗрдЦрди рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг рдмрд╣реБрдд рдорджрдж рдХрд░рддрд╛ рд╣реИ)ред
рдФрд░ рдЗрд╕рд▓рд┐рдП рд╣рдо рдХреНрдпрд╛ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ?
рд╣рдо рдПрдХ рдирд┐рдпрдВрддреНрд░рдХ рд▓рд┐рдЦреЗрдВрдЧреЗ рдЬреЛ рдлреЙрд░реНрдо рдореАрдбрд┐рдпрд╛ / рд╕реАрдПрд╕рдПрд╕ / рдбрд┐рдлреЙрд▓реНрдЯ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдЧрд╛ рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдХреИрд╢реНрдб, рдпрджрд┐ рдХреЛрдИ рд╣реЛ) рд╡рд┐рдЪрд╛рд░ /... / рдореАрдбрд┐рдпрд╛ / рд╕реАрдПрд╕рдПрд╕ / рдбрд┐рдлреЙрд▓реНрдЯ.рдПрд╕рдПрдХреНрд╕ рдлрд╝рд╛рдЗрд▓, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдПред

рдХреЛрдб рдХреЛ 90% рд╕реЗ рдЙрдзрд╛рд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдФрд░ рдЗрд╕рд▓рд┐рдП, рдХреЛрдб:
class Controller_Media extends Kohana_Controller{ public function action_index($path, $file) { $this->request->check_cache(sha1($this->request->uri)); //  media/css  media/js        .css  .js ,   =   if($path == 'css' || $path == 'js') { $ext = $path; } else { $ext = pathinfo($file, PATHINFO_EXTENSION); $file = substr($file, 0, -(strlen($ext) + 1)); } //   View::GetTplName()    ,   -  default, ,   views/default/media/...      -    View::GetTplName()     . if ($file = Kohana::find_file('views/'.View::GetTplName().'/media/'.$path, $file, $ext)) { //      ,    $this->request->response = file_get_contents($file); //        $this->request->headers['Content-Type'] = File::mime_by_ext($ext); $this->request->headers['Content-Length'] = filesize($file); $this->request->headers['Last-Modified'] = date('r', filemtime($file)); } else { //   404,     $this->request->status = 404; } } } 


рд╡рд╣, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рдм рд╣реИред рдЕрдм, рд╡рд┐рдЪрд╛рд░ / рдбрд┐рдлрд╝реЙрд▓реНрдЯ / рдореАрдбрд┐рдпрд╛ / css / default.css рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдореАрдбрд┐рдпрд╛ / css / рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкрд░ рдЬрд╛рдПрдВ, рдФрд░ рдХрд┐рд╕реА рдЪрд┐рддреНрд░ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реЗрдВ, рд╡рд┐рдЪрд╛рд░ / рдбрд┐рдлрд╝реЙрд▓реНрдЯ / рдореАрдбрд┐рдпрд╛ / img / logo.png рд╣рдо рдореАрдбрд┐рдпрд╛ / img / рд▓реЛрдЧреЛ рдХреА рдУрд░ рд░реБрдЦ рдХрд░реЗрдВ .png
рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдпрд╣рд╛рдБ рдРрд╕рд╛ рдорд╛рд░реНрдЧ рд╣реЛрдЧрд╛:
 Route::set('media', 'media/<path>/<file>', array('file' => '.*')) ->defaults(array( 'controller' => 'media', 'action' => 'index' )); 


рдореБрдЭреЗ рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рд╣реИ рдФрд░ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЫреЛрдЯреА рд╕реА рдкреЛрд╕реНрдЯ рдХрд┐рд╕реА рдХреА рдорджрдж рдХрд░реЗрдЧреАред

Source: https://habr.com/ru/post/In104862/


All Articles