静态文件
Masonite 试图让静态文件变得非常简单,并提供开箱即用的 Whitenoise。 Whitenoise 封装了 WSGI 应用程序并监听某些 URI 请求,这些请求可以在你的配置文件中注册并为这些资产提供服务。
配置
所有有关于静态文件的配置都可以在 config/filesystem.py
中找到。在这个文件中,你会找到一个名为 STATICFILES
的常量文件,它只是一个目录字典作为键和别名作为值。
作为键包含的目录只是静态文件位置的位置,作为从应用程序的基础开始的相对路径。例如,如果你的 css 文件位于 storage/assets/css
中,则将该文件夹位置作为键。对于该值,请在你将要在模板中使用别名进行替换。对于这个例子,我们将使用 css/
作为别名。
对于此设置,我们的 STATICFILES
常量应如下所示:
config/storage.py
STATICFILES = {
'storage/assets/css': 'assets/',
}
现在在模板中我们可以使用:
<img src="/assets/style.css">
Which will get the storage/assets/css/style.css
file.
静态模板函数
所有模板都有一个静态函数,可用于帮助获取静态文件的位置。你可以使用驱动程序名称或点表示法指定所需的驱动程序和位置。
以此为例:
config/filesystem.py
....
's3': {
's3_client': 'sIS8shn...'
...
'path': 'https://s3.us-east-2.amazonaws.com/bucket'
},
....
...
<img src="{{ asset('s3', 'profile.jpg') }}" alt="profile" />
...
这将渲染出如下效果:
<img
src="https://s3.us-east-2.amazonaws.com/bucket/profile.jpg"
alt="profile"
/>
你还可以将配置位置设为字典并使用点表示法:
config/storage.py
....
's3': {
's3_client': 'sIS8shn...'
...
'path': {
'east': 'https://s3.us-east-2.amazonaws.com/east-bucket',
'west': 'https://s3.us-west-16.amazonaws.com/west-bucket'
},
....
并像这样使用点符号:
...
<img src="{{ asset('s3.east', 'profile.jpg') }}" alt="profile" />
...
<img src="{{ asset('s3.west', 'profile.jpg') }}" alt="profile" />
...
服务「根」文件
有时你可能需要提供通常位于应用程序根目录中的文件,例如「robots.txt」或「manifest.json」。这些文件可以在 config/filesystem.py
中的 STATICFILES
目录中使用别名。它们不必位于项目的根目录中,而是可以位于 storage/root
或 storage/public
目录中,并以简单的 /
作为为别名。
例如,基本设置会将其作为你的目录:
resources/
routes/
storage/
static/
root/
robots.txt
manifest.json
你可以在你的 STATICFILES
常量中使用它的别名:
config/storage.py
STATICFILES = {
# folder # template alias
'storage/static': 'static/',
...
'storage/public': '/'
}
你现在可以访问 localhost:8000/robots.txt
,并且你的 robots.txt 将正确提供,并且可以被搜索引擎正确索引。
仅此而已!静态文件非常简单。你现在是静态文件的高手!
本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。