2013-07-04 10 views
8

Ich verstehe, dass Octopress als eigenständige Webanwendung ausgeführt wird.Octopress und eine Rails 4.0-Anwendung kombinieren?

Ich habe eine persönliche Website, und ich möchte einen Blog hinzufügen, und aus zahlreichen Gründen möchte ich Octopress dafür verwenden. Anstatt zwei separate Anwendungen und Repos in git zu haben, möchte ich diese Apps zusammen integrieren.

Gibt es eine zuverlässige Möglichkeit, Octopress in eine vorhandene Rails 4.0-Anwendung zu integrieren?

Wäre es am besten, Octopress als Rack-Anwendung im Rails-Router zu installieren, oder gibt es einen besseren Weg?

+3

Octopress erzeugt statische Dateien, reicht es nicht, sie in den öffentlichen Ordner Ihrer Rails App zu legen? – Wukerplank

+0

@Wukerplank Octopress ist eigentlich eine 'sinatra/base' App, daher glaube ich, dass es möglich ist, OctopressApp,: at => '/ blog' in einer Rails' routes.rb' Datei zu mounten. – professormeowingtons

+0

Nein, wenn Sie zu Ihrem Octopress-Ordner gehen und 'rake generate' ausführen, erhalten Sie einen' public'-Ordner mit Ihrem Blog. Octopress ist ein Wrapper für Jekyll (http://jekyllrb.com), der selbst ein statischer Site-Generator ist. Der Sinatra-Teil, auf den Sie sich beziehen, dient der Vorschau und Entwicklung. – Wukerplank

Antwort

1

Ich denke, Ihre beste Wette ist, einen Frontend-Server wie Nginx als Reverse-Proxy zu haben und die Umleitung/Proxying von dort zu tun.

server { 
    listen 80; 
    server_name domain.com; 
    location/{ 
    # ... proxy config stuff to rails ... 
    } 
} 

server { 
    listen 80; 
    server_name blog.mydomain.com; 
    location/{ 
    root /to/octopress/static/folder 
    } 
} 

Mein Beispiel ist, wenn Sie eine Sub-Domain blog.domain.com verwenden:

So erhalten Sie einen nginx.conf etwas entlang der Linien von haben. Aber natürlich, wenn Sie domain.com/blog haben, wird es immer noch funktionieren, machen Sie nur einige Feinheiten auf der nging.conf Datei.