2011-08-12 57 views
0

我有一個基於kohana的網站,我想靜態地(不通過控制器)提供圖像。 如果我給到圖像中的真實路徑:在Kohana中靜態的kohana服務器映像

Kohana_Request_Exception [ 0 ]: Unable to find a route to match the URI: media/ceva.jpg 

有沒有什麼辦法來靜態地服務於圖像(而不是通過對象):

<img src="/media/ceva.jpg" alt='<?= $product->name ?>' title="<?= $product->name ?>" /> 

我不斷收到路由錯誤? 謝謝!

+0

是的,但這取決於你使用的是什麼網絡服務器。如果是Apache或nginx的,你可以用[url_rewrite模塊(http://httpd.apache.org/docs/2.0/misc/rewriteguide.html)做到這一點。 IIS也有.htaccess支持,但從未個人使用過,所以不能保證它能正常工作。 – J0HN

+0

您可能需要更改重寫規則(.htaccess)。如果你有這個可以在這裏發佈? – jlb

+0

服務器是Apache – dana

回答

1

我對Kohana並不熟悉,但通常所需的服務靜態文件的方式是以應用程序/框架永遠不會看到這些請求的方式配置您的Web服務器。

如果您使用Apache,您可以簡單地在VirtualHost中使用Alias /media /path/to/your/media/folder

+0

好,所以這是一個服務器conf問題,而不是一個框架? – dana

0

我的個人偏好是在URL類中設置一個方法來提供有效的靜態內容URL。例如:

public static function media($path) 
{ 
    $media_path = Kohana::$config->load('whatever'); 

    return URL::site($media_path.$path); 
} 

當然,請根據您的需要進行修改。

您遇到由該位置,而不是一個Apache規則不存在的文件引起的問題。 Kohanas的apache規則允許直接訪問所有文件,安全檢查在每個php文件中分別定義。