行为:
Rails应用程序提供了所有资产,除了那些dynatree插件就好了,即我的树木没有文件夹图标,线条等萤火引用资产时报告404错误:
NetworkError: 404 Not Found - http://<production-host>/assets/dynatree/skin/icons-bf773ee37964ed4c51011537fefa5047.gif
我已经验证该资产在该目录中确实存在与预编译的名字。
因为我使用多个虚拟主机,我认为对于资产的URL应该包括应用程序目录名,即:
http://<production-host>/*houston*/assets/dynatree/skin/icons-bf...
(星号我自己的重点。)
我已经打了类似的资产子目录jQueryUI的图像的URL验证。 如果我在URL中包含的应用程序名称,图像被发现就好了。 没有它,我得到的404错误,这是非常合情合理的。
那么,为什么不使用dynatree的完整路径名资产目录? 它只是连接具有/资产的主机名。 我想,在初始时间了jQuery / dynatree代码没有得到正确的主机名。 有任何想法吗?
设定:
多台主机通过Apache /乘客设置:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/webapps
<Directory /var/webapps>
AllowOverride None
</Directory>
RailsEnv production
RackBaseURI /houston
<Directory /var/webapps/houston>
Options -MultiViews +FollowSymLinks
Allow from all
</Directory>
轨道/ Capistrano的:
这是Rails 3.1的应用程序,使用Capistrano的部署和资产获得凭借内置
load 'deploy/assets' (in deploy.rb)
没有更改默认的东西像config.assets.prefix和这样Rails的设置。
Dynatree:
通过dynatree护栏宝石包括在内。 Dynatree否则功能齐全。