gpt4 book ai didi

ruby-on-rails - Rails Assets 管道暂存 : correct fingerprint but 404ing

转载 作者:行者123 更新时间:2023-12-02 01:57:26 27 4
gpt4 key购买 nike

我正在运行 Rails 3.1.3,其中包含 Sprockets 2.0.3 作为依赖项。

我设置了我的暂存环境,以按照 Rails 指南建议的生产方式进行配置。

config.serve_static_assets = false
config.assets.compress = true
config.assets.compile = false
config.assets.digest = true

我已包含在我的 Capfile 中

load 'deploy'
load 'deploy/assets'

并且 Assets 在部署时按预期进行预编译。

在公共(public)/ Assets 中,我通过指纹找到了预期的 Assets 。

application-bd402855d34fb61e0a1690da06f79f20.js
application-bd402855d34fb61e0a1690da06f79f20.js.gz
application-ed3f9a8d23992790841c11b6692fb576.css
application-ed3f9a8d23992790841c11b6692fb576.css.gz
...and a bunch of images...

当我加载页面时,我看到了正确的引用文献、指纹等等。

<link href="/assets/application-ed3f9a8d23992790841c11b6692fb576.css" media="screen" rel="stylesheet" type="text/css">
<script src="/assets/application-bd402855d34fb61e0a1690da06f79f20.js" type="text/javascript"></script>

但是,一切都是 404、css、js、图像,一切。

有人知道这里有什么优惠吗?谢谢!

最佳答案

如果您确定 Assets 正在编译并存在于公共(public)目录中,这可能是您的网络服务器设置吗?在生产/登台环境中, Assets 不应访问 Rails 应用程序并直接从 Web 服务器提供服务。下面是一个 apache 配置片段示例:

   <LocationMatch "^/assets/.*$">
Header unset ETag
FileETag None
# RFC says only cache for 1 year
ExpiresActive On
ExpiresDefault "access plus 1 year"

SetEnv no-gzip
RewriteEngine on
# Make sure the browser supports gzip encoding before we send it
RewriteCond %{HTTP:Accept-Encoding} \b(x-)?gzip\b
RewriteCond %{REQUEST_FILENAME}.gz -s
RewriteRule ^(.+) $1.gz [L]

</LocationMatch>

<FilesMatch \.css\.gz$>
ForceType text/css
Header set Content-Encoding gzip
</FilesMatch>

<FilesMatch \.js\.gz$>
ForceType text/javascript
Header set Content-Encoding gzip
</FilesMatch>

关于ruby-on-rails - Rails Assets 管道暂存 : correct fingerprint but 404ing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8425429/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com