trellis-ldp / static-ldp
静态资产的LDP服务器
Requires
- php: >=7.1.0
- ext-ctype: *
- ext-iconv: *
- easyrdf/easyrdf: ^0.9.1
- ml/json-ld: ^1.1
- symfony/console: 4.4.*
- symfony/flex: ^1.3.1
- symfony/framework-bundle: 4.4.*
- symfony/twig-bundle: 4.4.*
- symfony/yaml: 4.4.*
Requires (Dev)
- squizlabs/php_codesniffer: ^3.2
- symfony/browser-kit: 4.4.*
- symfony/dotenv: 4.4.*
- symfony/phpunit-bridge: 4.4.*
Conflicts
This package is not auto-updated.
Last update: 2024-09-29 03:04:42 UTC
README
将静态资产作为只读LDP服务器公开的简单方法。
需求
安装
要安装static-ldp
,请按照以下步骤操作
- 运行
composer create-project trellis-ldp/static-ldp
- 创建一个类似于这样的
./.env.local
文件
TRELLIS_SOURCE_DIR='/path/to/resources'
基础知识
通过安装static-ldp
并将TRELLIS_SOURCE_DIR
配置为指向您的静态资源位置,您就可以拥有一个简单、只读的链接数据服务器。
网页内容将从./public
目录提供。
LDP资源
单个文件作为ldp:NonRDFSource
资源提供服务,目录作为ldp:BasicContainer
资源提供服务。如果静态文件是RDF文件,则它将作为ldp:RDFSource
提供服务。
描述LDP非RDF资源
还可以通过Link: <IRI>; rel="describedby"
头部描述一个ldp:NonRDFSource
。例如,如果JPEG文件名为rosid_rosaceae.jpg
,那么通过添加一个名为rosid_rosaceae.jpg.ttl
(或任何有效的RDF格式,如rosid_rosaceae.jpg.jsonld
)的RDF文件,则对rosid_rosaceae.jpg
的请求将包含指向ldp:RDFSource
的链接头部。同样,ldp:RDFSource
将包含指向ldp:NonRDFSource
的链接头部(rel="describes"
)。
实例摘要支持
所有资源都支持根据RFC 3230定义的实例摘要。这意味着响应可以包含一个Digest
头部,以便可以确保端到端数据完整性。包含头部:Want-Digest: md5
或Want-Digest: sha1
的请求将包含包含与磁盘资源对应的摘要的响应。
只支持md5
和sha1
算法;其他算法将被忽略。需要注意的是,对于大文件,包含Want-Digest
的请求可能执行速度会慢得多,因为摘要需要在发送响应之前计算。
配置
有许多配置选项可用。只有sourceDirectory
必须定义。其他选项包括
template: default.twig
如果您希望用您自己的设计覆盖HTML模板,可以更改此值以指向不同的位置。或者,您也可以编辑位于templates
目录中的default.twig
文件。尽管如果您计划自定义模板,建议您使用一个单独的文件。
defaultRdfFormat: turtle
对于没有Accept
头部的请求,这是响应中使用的RDF格式(用于ldp:RDFSource
和ldp:BasicContainer
资源)。
contentDisposition: false
对于ldp:NonRDFSource
资源,这控制是否在响应中包含Content-Disposition
头部。
extraPropertiesFilename: properties
对于每个成为ldp:BasicContainer
资源的目录,该目录中具有此名称的RDF文件的内容将添加到作为响应提供的RDF中(而不是成为其自身的子资源)。这提供了一种向ldp:BasicContainer
添加用户控制的属性的方法。
validRdfFormats:
turtle:
mimeType: text/turtle
extension: ttl
jsonld:
mimeType: application/ld+json
extension: jsonld
ntriples:
mimeType: application/n-triples
extension: nt
一般来说,除非需要支持此处未包含的序列化格式,否则不应更改RDF格式。RDF格式(例如turtle
、jsonld
)必须是EasyRdf支持的RDF序列化格式。[EasyRdf](http://www.easyrdf.org/)。
prefixes:
dc: "http://purl.org/dc/terms/"
rdf: "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
...
默认的HTML显示模板将在注册了这些前缀的情况下以简短(带前缀)的形式展示IRI。默认情况下包括了一些常见前缀,但任何前缀都可以在此注册。