active_storage url_for 生成无法使用的网址
active_storage url_for producing unusable urls
我的 Rails 6.x 应用程序一直在使用 ActiveStorage,将各种文件附加到我的模型,并且运行良好。但是在某些时候,url_for
方法开始生成无法使用的 url(即当我尝试访问 [=32= 返回的 url 时服务器 returns 一个 404 =]). url 在我的开发环境和生产环境中均已损坏,它们分别使用我的 storage.yml
中定义的磁盘和 S3 服务。
为了找出问题,我用Rails(6.0.3.2)、aws-sdk等版本新建了一个app,做了一个简单的模型,附上附件以同样的方式,一切似乎都正常。所以我猜一定是我遗漏了一些 cfg 问题,但我没能找到它。
在这两种情况下,图像文件都是在 storage.yml 中指定的位置创建的,并且 url 生成的两者看起来非常相似,但在第一种情况下;访问 url 会产生 404,但在新应用程序中,它工作正常(即 url returns 预期图像)
作为参考,我在下面发布了用于创建模型和附加图像的代码,以备不时之需。
对我可能配置错误或忘记迁移的任何想法表示赞赏!
损坏的应用程序:
liss.image.attach(io: File.open('./test/fixtures/files/liss-image.jpg'), filename: 'liss-image.jpg')
url_for liss.image
http://localhost:3000/rails/active_storage/blobs/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBCZz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--f893bcbb165cd1e89d79dc28ac2eed7236172543/liss-image.jpg
工作应用:
user = User.create!(first_name: 'John', last_name: 'Appleseed', email: 'ja@gmail.com')
user.image.attach(io: File.open('./test/fixtures/files/liss-image.jpg'), filename: 'liss-image.jpg')
url_for user.image
http://localhost:3000/rails/active_storage/blobs/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBCdz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--047687b69b8e5877cbfdd93cd6128ddd80d41141/liss-image.jpg
路线中是否有rails/active_storage/blobs
?
尝试使用 rails routes
检查路线。
我的 Rails 6.x 应用程序一直在使用 ActiveStorage,将各种文件附加到我的模型,并且运行良好。但是在某些时候,url_for
方法开始生成无法使用的 url(即当我尝试访问 [=32= 返回的 url 时服务器 returns 一个 404 =]). url 在我的开发环境和生产环境中均已损坏,它们分别使用我的 storage.yml
中定义的磁盘和 S3 服务。
为了找出问题,我用Rails(6.0.3.2)、aws-sdk等版本新建了一个app,做了一个简单的模型,附上附件以同样的方式,一切似乎都正常。所以我猜一定是我遗漏了一些 cfg 问题,但我没能找到它。
在这两种情况下,图像文件都是在 storage.yml 中指定的位置创建的,并且 url 生成的两者看起来非常相似,但在第一种情况下;访问 url 会产生 404,但在新应用程序中,它工作正常(即 url returns 预期图像)
作为参考,我在下面发布了用于创建模型和附加图像的代码,以备不时之需。
对我可能配置错误或忘记迁移的任何想法表示赞赏!
损坏的应用程序:
liss.image.attach(io: File.open('./test/fixtures/files/liss-image.jpg'), filename: 'liss-image.jpg')
url_for liss.image
http://localhost:3000/rails/active_storage/blobs/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBCZz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--f893bcbb165cd1e89d79dc28ac2eed7236172543/liss-image.jpg
工作应用:
user = User.create!(first_name: 'John', last_name: 'Appleseed', email: 'ja@gmail.com')
user.image.attach(io: File.open('./test/fixtures/files/liss-image.jpg'), filename: 'liss-image.jpg')
url_for user.image
http://localhost:3000/rails/active_storage/blobs/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBCdz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--047687b69b8e5877cbfdd93cd6128ddd80d41141/liss-image.jpg
路线中是否有rails/active_storage/blobs
?
尝试使用 rails routes
检查路线。