2016-08-06 4 views
1

Пожалуйста, помогите решить проблему.Почему URL-адрес искажен?

Я использую рельсы 5. создать простой сайт, ведьма имеют последующие навигации:

[email protected] ~/rails/test5 $ rails routes 
     Prefix Verb URI Pattern    Controller#Action 
    pages_home GET /pages/home(.:format)  pages#home 
    pages_about GET /pages/about(.:format)  pages#about 
pages_portfolio GET /pages/portfolio(.:format) pages#portfolio 
    pages_blog GET /pages/blog(.:format)  pages#blog 
    pages_contact GET /pages/contact(.:format) pages#contact 
      root GET/      pages#home 

страница есть 2 пути:

http://localhost:3000/pages/home 
http://localhost:3000/ 

страница есть JS-слайдер. Код инициализации:

function clearText(field) 
{ 
    if (field.defaultValue == field.value) field.value = ''; 
    else if (field.value == '') field.value = field.defaultValue; 
} 


var flashvars = {}; 
flashvars.xml_file = "photo_list.xml"; 
var params = {}; 
params.wmode = "transparent"; 
var attributes = {}; 
attributes.id = "slider"; 
swfobject.embedSWF("flash_slider.swf", "flash_grid_slider", "960", "350", "9.0.0", false, flashvars, params, attributes); 


ddsmoothmenu.init({ 
    mainmenuid: "templatemo_menu", //menu DIV id 
    orientation: 'h', //Horizontal or vertical menu: Set to "h" or "v" 
    classname: 'ddsmoothmenu', //class added to menu's outer DIV 
    //customtheme: ["#1c5a80", "#18374a"], 
    contentsource: "markup" //"markup" or ["container_id", "path_to_menu_file"] 
}) 

Проблема: на пути http://localhost:3000/pages/home
этот ползунок не отображается. консоль выдает сообщение об ошибке последующей:

GET http://localhost:3000/pages/photo_list.xml 404 (не найден)

Но на пути http://localhost:3000/ слайдера отображается без проблем.

ps: путь pages/photo_list.xml НЕ существует. но путь public/photo_list.xml есть.

PageController:

class PagesController < ApplicationController 
    def home 
    render layout: "home" 
    end 

    def about 
    end 

    def portfolio 
    render layout: "portfolio" 
    end 

    def blog 
    end 

    def contact 
    end 
end 

ответ

0

Это из-за этой линии:

flashvars.xml_file = "photo_list.xml";

Это будет относительно страницы вы находитесь. Поэтому, когда вы находитесь на http://localhost:3000/pages/home, он попытается загрузить http://localhost:3000/pages/photo_list.xml. Когда вы на главной странице, он загрузит нужный файл.

Изменить эту строку в это:

flashvars.xml_file = "/photo_list.xml";

Смежные вопросы