Как сделать статическое содержание в направляющих?

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

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

, Если Вы знаете, что Вы - единственный человек, продвигающий и Вы хотите продвинуть исправленную фиксацию или продвинуть фиксацию, что ветры поддерживают ответвление, можно 'вынудить' Мерзавца обновить удаленное ответвление при помощи эти -f переключатель.

git push -f origin master

Даже это не может работать, поскольку Мерзавец позволяет удаленным репозиториям отказываться от нажатий non-fastforward в дальнем конце при помощи переменной конфигурации receive.denynonfastforwards. Если это верно, причина отклонения будет похожа на это (отметьте 'удаленную отклоненную' часть):

 ! [remote rejected] master -> master (non-fast forward)

Для обхождения этого или необходимо изменить конфигурацию удаленного репозитория или как грязный взлом, можно удалить и воссоздать ответвление таким образом:

git push origin :master
git push origin master

В целом последний параметр к git push использование формат <local_ref>:<remote_ref>, где local_ref название ответвления по локальному репозиторию и remote_ref, является названием ответвления по удаленному репозиторию. Эта пара команды использует два shorthands. :master имеет пустой указатель local_ref, что означает, продвигают пустое ответвление удаленной стороне master, т.е. удаляют удаленное ответвление. Имя ответвления без [1 111] средства продвигает локальное ответвление с именем к удаленному ответвлению с тем же именем. master в этой ситуации коротко для [1 113].

72
задан jwadsack 11 March 2015 в 19:05
поделиться

4 ответа

Thinkbot имеет плагин high_voltage для отображения статического содержимого: https: // github. com / thinkbot / high_voltage

30
ответ дан 24 November 2019 в 12:27
поделиться

зависит от структуры URL-адреса, если вы хотите, чтобы пути выходили из / (например, / about_us), тогда:

map.connect ':action', :controller => "static"

Это должно быть в самом конце вашего файла маршрутов, Throw ваши файлы .html.erb в app / views / static, и все готово.

например: добавление about_us.html.erb , даст вам страницу по адресу /about_us.[1214 sizesThe item который у вас есть в вашем вопросе, отлично подходит для маршрута перехвата всех, где вы можете проанализировать массив, предоставленный вам в params [: path] . Дополнительная информация на http://railscasts.com/episodes/46-catch-all-route

22
ответ дан 24 November 2019 в 12:27
поделиться

Учитывая, есть ли у вас 1 домашний контроллер с парными методами, такими как show, aboutus, privacy:

class HomesController < ApplicationController
  def show
  end
  def privacy
  end
  def aboutus
  end
end

Сопоставьте метод show со своим корнем и сопоставьте другой к некоторым именованным маршрутам, например

map.root      :controller => "homes", :action => "show"
map.aboutus "/aboutus", :controller => "homes", :action => "aboutus"
map.privacy "/privacy", :controller => "homes", :action => "privacy"

И с представлением для каждого

app/views/homes/aboutus.html.erb --> you get http://localhost:3000/aboutus
app/views/homes/show.html.erb --> you get http://localhost:3000 (root)
app/views/homes/privacy.html.erb --> you get http://localhost:3000/privacy

. Все они используют один и тот же макет в app / views / layout / application.html.erb

2
ответ дан 24 November 2019 в 12:27
поделиться

Отображение действия не имеет смысла. Вы захотите отобразить шаблон (или файл) с макетом.

# Path relative to app/views with controller's layout
render :template => params[:path]

# ... OR

# Absolute path. You need to be explicit about rendering with a layout
render :file => params[:path], :layout => true

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

# app/controllers/static_controller.rb
class StaticController < ApplicationController
  layout 'static'

  caches_page :show

  def show
    valid = %w(static1 static2 static3)
    if valid.include?(params[:path])
      render :template => File.join('static', params[:path])
    else
      render :file   => File.join(Rails.root, 'public', '404.html'), 
             :status => 404
    end
  end
end

Наконец, нам нужно определить маршрут.

# config/routes.rb
map.connect 'static/:path', :controller => 'static', :action => 'show'

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

  • http: // localhost: 3000 / static / static1
  • http: // localhost: 3000 / static / static3
  • http: // localhost: 3000 / static / static2

Если вы посмотрите в app / public, вы увидите каталог static / с static1.html, static2.html и static3.html. После первого доступа к странице все последующие запросы будут полностью статичными благодаря кэшированию страницы.

13
ответ дан 24 November 2019 в 12:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: