Riverbed Stingray steelapp, отображение изображения на странице обслуживания

Мы настроили наше приложение на скате реки, одним из требований которого было отображение страницы обслуживания, когда администратор хочет обновить систему.

Поэтому для этого мы создали html-страницу с изображением логотипа и добавили изображения.html и.png в путь Extra File/ Miscellaneous. Мы создали правило в правиле, которое мы добавили ниже trafficScript, в котором жестко закодированное имя файла html загружено по разному пути. И теперь, когда я пытаюсь получить доступ к своему веб-сайту, отображается страница обслуживания, но изображение, добавленное на странице обслуживания, не отображается. Но если я не кодирую имя файла.html, а использую http.getPath(), а затем получаю имя файла и использую его для навигации (прокомментировано в скрипте), изображение также отображается нормально.

Если кто-то может указать мне, где, если есть какие-либо проблемы или есть лучший способ сделать это.

  <!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Sorry</title>
</head>
<body>
    <img src="/.extra/test.png">
    <h1>Our apologies</h1>
    We're sorry.  All of our operators are busy.  Please try again later.  
</body>
</html>

TrafficScript

#$url = http.getPath(); 
#if( ! string.regexmatch( $url, "^/\\.extra/(.*)$" ) ) {  
#   break;  
#} else {  
#   $file = $1;  
#}

$file = "App_Offline.html";
# If the file does not exist, stop  
if( ! resource.exists( $file ) ) break;  

# Serve the file from the conf/extra directory  
$contents = resource.get( $file );  
http.sendResponse( "200 OK", "text/html", $contents, "" ); 

1 ответ

Решение

Теперь я могу отображать изображение на html-странице и перемещать весь трафик на эту страницу, когда правило включено. Я изменил trafficscript, как показано ниже

$url = http.getPath();  
if( ! string.regexmatch( $url, "^/\\.extra/(.*)$" ) ) {    
  http.setPath("/.extra/App_Offline.html");  
}  

$url = http.getPath();  

if( ! string.regexmatch( $url, "^/\\.extra/(.*)$" ) ) {    
  break;    
} else {    
  $file = $1;    
}  

# If the file does not exist, stop    
if( ! resource.exists( $file ) ) break;    

$mimes = [    
        "html"  => "text/html",    
        "jpg"    => "image/jpeg",    
        "jpeg"  => "image/jpeg",    
        "png"    => "image/png",    
        "gif"    => "image/gif",    
        "js"    => "application/x-javascript",    
        "css"    => "text/css"  ,    
        "ico"    => "image/x-icon" ,    
        "txt"    => "text/plain"    
        ];    
        if( string.regexmatch( $file , ".*\\.([^.]+)$" ) ) {    
            $mime = $mimes[ $1 ];    
        }    
        if( ! $mime ) $mime = "text/html";   

# Serve the file from the conf/extra directory    
$contents = resource.get( $file );    
http.sendResponse( "200 OK", $mime , $contents, "" ); 
Другие вопросы по тегам