我試圖在VPS上部署我的rails應用程序時遇到了大問題。 我在Rails應用程序公共/文件夾中有一些文件,例如public/javascripts/home-menu.js,並且我還使用Sprocket預編譯爲公共/資產。Rails的乘客Apache不是服務器公共/資產
在我production.rb設置
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
雖然Rails應用程序的服務很好,對公共/目錄下的所有文件無法送達。錯誤如下所示。
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的/ home/gadgettr /的public_html所以我創建別名 LN -s /家庭/ gadgettr /公/家庭/ gadgettr /的public_html
不過,我解決不了我的問題,仍然得到同樣的路由錯誤。爲什麼Apache不提供我的靜態文件?
花了整整一天的時間來調試這個...真的需要我可以擁有的所有幫助!感謝你的幫助!
爲什麼你的公共目錄中有一個Javascript文件夾?爲什麼不在資產目錄或Vendor目錄中的javascript文件夾中使用javascript文件夾? – fatfrog
當我把公共/資產文件夾中的JavaScript,我得到預編譯錯誤消息。 – jaxxie