2015-12-14 1 views
2

Я знаю, что файлы существуют и доступны для чтения.Нет ссылок на маршрут [GET] в папке с активностью

Я пытаюсь создать кнопку, которая загружает файл при нажатии с помощью тега a, который указывает на местоположение файла. Он не работал, поэтому я сразу же применил тег a к файлу, после чего получил ошибку, сообщив, что он не смог ее найти.

файлы (файлы типа XML) найдены (и впоследствии проанализирован и вынесено в порядке), как, например: Dir.glob('app/assets/directory/*')

Может ли это быть проблема с активами компилируется?

Я в разработке.

+2

Показать свой 'Ā' тег –

ответ

1

Предполагается, что у вас нет доступа к app/assets непосредственно от браузера. Когда вы прекомпилируете активы, он копирует активы в app/assets в public/assets и обычно добавляет отпечаток. Например:

app/assets/images/image.png 

становится

public/assets/image-0a5440e6975d3b7d5ab8f485e33fd6e5.png 

Остановите свой сервер. Удалите каталог public/assets и tmp/cache/assets, если они у вас есть. Предварительно скопируйте активы rake assets:precompile. Запустите сервер. Затем отметьте public/assets для конкретного файла, который вы пытаетесь использовать в теге a. Таким образом, в этом случае вы переходите к localhost:3000/assets/image.png

Но это нехорошо твердить для имени файла для производства. Вы должны позволить Rails делать магию со встроенными тегами.

+0

Да, я не пытаюсь жестко закодировать имена файлов. Ссылка теперь работает, но по какой-то причине только на моем локальном компьютере, я пробовал как разработку, так и режим производства на сервере. – JackHasaKeyboard

+0

@JackHasaKeyboard Если у вас возникла новая проблема, лучше принять ответ и задать новый вопрос, показывающий ошибки. Повторяли ли вы шаги в своем ответе на своем сервере? И вы пытались установить 'config.assets.compile = true' в' config/environment/production.rb'? –

1

После предварительной компиляции активов имена файлов будут изменены, а код конца отпечатка будет добавлен в конец имени файла. Например, app/assets/icon.png станет public/assets/icon-10116c180e629f40e8ebe9a856d25d49.png.

Вы можете достичь предварительно скомпилированных имена файлов активов с:

asset_path 'icon.png' 

И для создания ссылки на файл, который вы можете использовать:

<%= link_to 'link_title', asset_path('icon.png') %>