Загрузите.svg для отображения с JavaScript в рельсах

Я пытаюсь использовать kartograph.js для отображения карты SVG, расположенной в / public в приложении rails, и не могу понять, как загрузить карту. Вот мой файл.js.coffee.erb:

$ ->
    map = $K.map('#map')
    # map.loadMap("#{Rails.root}/public/Blank_US_Map.svg", loaded) # attempt 1
    map.loadMap("Blank_US_Map.svg", loaded) # attempt 2

    loaded = () ->
        map.addLayer('baseLayer')

Ошибка, выдаваемая в консоли: Uncaught TypeError: Невозможно вызвать метод getAttribute с неопределенным значением, хотя я считаю, что проблема заключается в том, что ни один файл не загружается.

1 ответ

Проблема возникает из библиотеки, которую вы используете, Картограф. Ему нужен файл SVG с абсолютной координатой, иначе вы, скорее всего, получите эту ошибку.

Вы можете подтвердить это, попробовав версию в формате чисто HTML-and-js, например:

<html>
    <head>
        <script src="jquery.min.js"></script>
        <script src="raphael-min.js"></script>
        <script src="kartograph.min.js"></script>
    </head>
    <body>
        <div id="map"></div>
    </body>
</html>

<script>
    $(document).ready(function() {
        var map = kartograph.map('#map');
        function callback(mymap) {
            // Stuff
        }
        map.loadMap('Blank_US_Map.svg', callback);

    })
</script>

И посмотрите, если вы получите ту же ошибку.

Другие вопросы по тегам