2013-11-24 2 views
1

У меня возникла большая проблема с моим рельсовым приложением, которое я пытаюсь развернуть на VPS. У меня есть некоторые файлы в общедоступной/папке приложений rails, например public/javascripts/home-menu.js, а также я использую Sprocket для предварительной компиляции в public/assets.Пассажирский Apache для Rails не является общедоступным сервером/активами

В моей заходящего

config.serve_static_assets = false #i want to serve through Apache not rails 
config.assets.compress = true 
config.assets.compile = false 
config.assets.digest = true 

Хотя приложение рельсы служит штраф production.rb, все файлы на общественном/директории не может быть подан. Ошибка показана ниже.

Routing Error 

No route matches [GET] "/assets/application-fbbe68455909a54f6d39e01d3ab38d34.js" 
Try running rake routes for more information on available routes. 

Я считаю, что что-то не так с настройкой Apache, поэтому я вошел, чтобы проверить. Если параметр CPanel установлен, установка Apache устанавливается автоматически. Я добавил ниже "/usr/local/apache/conf/userdata/std/2/gadgettr/mydomain.com/ .conf" *

<Directory /home/gadgettr/public> 
    # This relaxes Apache security settings. 
    AllowOverride all 
    # MultiViews must be turned off. 
    Options -MultiViews 

    #Options FollowSymLinks 
    #AllowOverride None 
    #Order allow,deny 
    #Allow from all 
    </Directory> 

И в http.conf

<VirtualHost 103.15.232.XXX:80> 
ServerName mydomain.com 
ServerAlias www.mydomain.com 
DocumentRoot /home/gadgettr/public_html 
ServerAdmin [email protected] 
UseCanonicalName Off 

## User gadgettr # Needed for Cpanel::ApacheConf 
UserDir enabled gadgettr 
<IfModule mod_suphp.c> 
    suPHP_UserGroup gadgettr gadgettr 
</IfModule> 
<IfModule !mod_disable_suexec.c> 
    <IfModule !mod_ruid2.c> 
     SuexecUserGroup gadgettr gadgettr 
    </IfModule> 
</IfModule> 
<IfModule mod_ruid2.c> 
    RMode config 
    RUidGid gadgettr gadgettr 
</IfModule> 
<IfModule itk.c> 
    # For more information on MPM ITK, please read: 
    # http://mpm-itk.sesse.net/ 
    AssignUserID gadgettr gadgettr 
</IfModule> 
ScriptAlias /cgi-bin/ /home/gadgettr/public_html/cgi-bin/ 

Include "/usr/local/apache/conf/userdata/std/2/gadgettr/gadgettrader.sg/*.conf" 

</VirtualHost> 

Я не могу изменить DocumentRoot/дома/gadgettr/public_html, поэтому я создать псевдоним пер -s/дома/gadgettr/государственные/дома/gadgettr/public_html

Однако я не могу решить мою проблему и до сих пор получить тот же ошибка маршрутизации. Почему Apache не обслуживает мой статический файл?

Отработал целый день, отлаживая это ... На самом деле нужна вся помощь, которую я могу иметь! Ценю вашу помощь!

+0

Почему у вас есть папка Javascript в вашем общедоступном каталоге? Почему вы не используете папку javascript в каталоге активов или в папке javascript в каталоге Vendor? – fatfrog

+0

Когда я помещаю javascript в папку public/assets, я получаю предварительно скомпилированное сообщение об ошибке. – jaxxie

ответ

0

Я решил проблему! Это проблема разрешения

Проблема началась, потому что я использую пользователя root для создания/home/gadgettr. таким образом, владелец root, а не gadgettr. Чтобы решить эту проблему, используйте WHM, чтобы удалить пользователя и воссоздать новый. то вместо того, чтобы использовать root для настройки вашего приложения rails, используйте созданный пользователь.

Это должно решить все :)

+0

Я тоже научился этому. Установка с правами root будет действительно испортить вашу систему, как ничто другое. – fatfrog

Смежные вопросы