2009-10-11 62 views
0

我已經安裝在一個子文件夾的Zend Framework應用程序,這樣的事情:Zend框架中的子文件夾

www.mydomain.com/temp/zend-application/ 

現在的問題是所有樣式表,JavaScript文件以及所有鏈接中使用相對路徑,如:

/css/styles.css 
/js/jquery.js 
/controller/action 

而這些去的主要領域是這樣的:

www.mydomain.com/css/styles.css 
www.mydomain.com/js/jquery.js 
www.mydomain.com/controller/action 

那麼如何使它在該子文件夾中工作?

我.htacces文件現在看起來是這樣的:

RewriteEngine On 

# Exclude some directories from URI rewriting 
#RewriteRule ^(dir1|dir2|dir3) - [L] 

RewriteRule ^\.htaccess$ - [F] 

RewriteCond %{REQUEST_URI} ="" 
RewriteRule ^.*$ /public/index.php [NC,L] 

RewriteCond %{REQUEST_URI} !^/public/.*$ 
RewriteRule ^(.*)$ /public/$1 

RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule ^.*$ - [NC,L] 

RewriteRule ^public/.*$ /public/index.php [NC,L] 

編輯:我以setBaseUrl前端控制器()方法解決了這個問題。現在的問題是如何編輯我的.htaccess文件。

+0

您能工作嗎?你最終在你的.htaccess文件中修改了什麼? – doremi

回答

2

最好的解決方案是在您的應用程序中使用set a BaseUrl。如果您在.htaccess中設置了RewriteBase,應該會自動檢測到這一點。路由器和其他組件瞭解此設置並可以生成適當的鏈接。

有一個view helper這使得鏈接到資產更容易。

或者您可以修復使用的文件頭標記這些鏈接。

<html> 
<head> 
<base href="http://www.mydomain.com/temp/zend-application/"> 
</head> 

http://www.w3schools.com/TAGS/tag_base.asp

0

進一步閱讀,我會確定使用preppended到CSS的和JS的路徑的baseUrl()視圖助手。