2016-12-29 66 views
1

我應用了漂亮的URL並從URL中刪除了前端/網頁,但圖像無法正常工作。Yii2刪除前端/網頁後不顯示圖片

幫助在前端訪問圖像

我已經請參閱本url創建漂亮的URL

代碼:MYAPP /的.htaccess

Options +FollowSymlinks 
RewriteEngine On 

RewriteCond %{REQUEST_URI} ^/myapp/(assets|css|images) 
RewriteRule ^assets/(.*)$ frontend/web/assets/$1 [L] 
RewriteRule ^css/(.*)$ frontend/web/css/$1 [L] 
RewriteCond %{REQUEST_URI} !^/myapp/(frontend|backend)/web/(assets|css)/ 
RewriteCond %{REQUEST_URI} !index.php 
RewriteCond %{REQUEST_FILENAME} !-f [OR] 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ frontend/web/index.php/$1 [L] 

代碼:/ MyApp的/ frontend/config/main.php

use \yii\web\Request; 

$baseUrl = str_replace('/frontend/web', '', (new Request)->getBaseUrl()); 

$params = array_merge(
    require(__DIR__ . '/../../common/config/params.php'), 
    require(__DIR__ . '/../../common/config/params-local.php'), 
    require(__DIR__ . '/params.php'), 
    require(__DIR__ . '/params-local.php') 
); 


return [ 
    'id' => 'app-frontend', 
    'basePath' => dirname(__DIR__), 
    'bootstrap' => ['log'], 
    'controllerNamespace' => 'frontend\controllers', 

    'components' => [ 
     'request' => [ 
      'csrfParam' => '_csrf-frontend', 
      'class' => 'common\components\Request', 
      'web'=> '/frontend/web' 
     ], 
     'user' => [ 
      'identityClass' => 'common\models\User', 
      'enableAutoLogin' => true, 
      'identityCookie' => ['name' => '_identity-frontend', 'httpOnly' => true], 
     ], 
     'session' => [ 
      // this is the name of the session cookie used for login on the frontend 
      'name' => 'advanced-frontend', 
     ], 
     'log' => [ 
      'traceLevel' => YII_DEBUG ? 3 : 0, 
      'targets' => [ 
       [ 
        'class' => 'yii\log\FileTarget', 
        'levels' => ['error', 'warning'], 
       ], 
      ], 
     ], 
     'errorHandler' => [ 
      'errorAction' => 'site/error', 
     ], 


     'urlManager' => [ 
       'enablePrettyUrl' => true, 
       'showScriptName' => false, 
       'rules' => [ 

         '<alias:login|logout|signup>' => 'site/<alias>', 
          'users'=>'user/index',            
         ], 
       ], 
     ], 
    'params' => $params, 
]; 

回答

0

試試這個:
<img src="<?= Yii::$app->request->baseUrl ?>/img/image1.jpg">

+0

我試過這個,但得到404錯誤沒有找到圖片 – Kailas

+0

可以請你告訴我究竟是什麼路,它會顯示現在 –

1

編輯
應用相當網址只是這樣的:

  1. 刪除已內myapp創建.htaccess文件,並創建另一個內部myapp/backend/webmyapp/frontend/web文件夾如下所示:

RewriteEngine敘述上

的RewriteCond%{} REQUEST_FILENAME!-f

的RewriteCond%{} REQUEST_FILENAME!-d

重寫規則。的index.php

  • common/config/main.php添加urlManager組件象下面這樣:

    enter image description here

  • 卸下urlManager你在裏面創建的組件myapp/frontend/config/main.php
  • 現在我想你會得到你的圖像很容易如下:
  • @web是您當前運行的Web應用程序(前端/ Web)的基本URL。它與yii\web\Request::$baseUrl的值相同。

    所以你應該讓你的圖片如下圖所示:

    <?php echo Html::img('@web/images/test.png', []); ?> 
    

    <?php echo Html::img(Yii::$app->request->baseUrl.'/images/test.png', []); ?> 
    

    假設你有包含你的圖像(測試你的web目錄文件夾「圖像」。PNG中的例子)

    +0

    我試過這個,但得到404錯誤沒有找到圖片 – Kailas

    +0

    這意味着問題來自其他地方。更新您的問題並添加您的代碼,以便我們看到您應用漂亮的URL並從URL中移除前端/網頁的方式。 – stfsngue

    +0

    我已添加代碼。檢查一次 – Kailas