Question

Je qu'Apache 2.2 avec mod_rails en cours d'exécution à http: // localhost . Je veux avoir mon application rails http: // localhost / railsBlog . Alors, ce que je ne l'étais, j'ai créé un hôte virtuel:

  ServerName localhost
  DocumentRoot /Library/WebServer/Documents
  RailsEnv development
  RailsBaseURI /railsBlog

Maintenant, depuis l'URL est http: // localhost / railsBlog , les vues du serveur railsBlog comme contrôleur je passe dans, ce qui est pas ce que je veux. Donc, quand je vais http: // localhost / railsBlog / home / index. Ce ne sera pas arriver à mon contrôleur « maison » et vue « index » parce qu'il essaie d'aller à railsBlog 'contrôleur (n'existe pas) et vue « à domicile » (n'existe pas) .

Je pense qu'une façon de résoudre ce problème est de redéfinir map.root être / railsBlog et les choses devraient être bien. Mais comment?

Une autre façon que je pouvais contourner ce serait de modifier config / routes.rb avoir:

map.connect 'railsBlog/:controller/:action/:id'

Cependant, cela signifierait que je devrais changer ce fichier chaque fois que je déploie dans un autre endroit.

Ou, est-il un autre moyen de contourner cela?

Était-ce utile?

La solution

Vous pouvez mettre une ligne comme ça dans config / environment.rb (ou l'un des fichiers d'environnement spécifiques)

config.action_controller.relative_url_root = "/railsBlog"

Vous devez également créer un lien symbolique dans le répertoire à la racine publc du répertoire web, par exemple:

ln -s /rails/railsBlog/public /webroot/

Tout cela est de la documentation des passagers

Autres conseils

Il suffit d'ajouter à la réponse précédente ... voici l'url de la documentation:

http://www.modrails.com/documentation/Users%20guide .html # deploying_rails_to_sub_uri

En outre, voici quelques informations si vous utilisez en erreur avec image brisée, css, liens vers des ressources ...

http://www.modrails.com/documentation/Users%20guide .html # sub_uri_deployment_uri_fix

Fondamentalement, il dit que vous devez toujours utiliser les rails fonctions d'aide (image_tag, javascript_include_tag et stylesheet_link_tag) au lieu de la main de codage des urls. Ceux-ci génère automatiquement l'URL correcte avec le sous uri que vous avez défini.

Cela vous permet de déplacer facilement l'application à un autre sous uri ou hors de la configuration sous-uri sans changer toutes vos références.

Une chose à ce sujet est que vous pouvez utiliser une instruction de serveur virtuel pour déployer des applications mutiple en ayant plusieurs lignes RailsBaseURI. Ce qui est pratique pour une application que nous essayons de construire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top