Gab*_*uti 4 javascript bash openshift
我想开始一个应用程序的NodeJS Openshift因为我想使用持久性文件(如图片),我需要将它们存储在OPENSHIFT_DATA_DIR目录中.
我已经为构建阶段做了这个action_hooks:
#!/bin/bash
#First of all I check if the dir exists. If not I create it
if [ ! -d $OPENSHIFT_DATA_DIR'images' ]
then
echo "Create "$OPENSHIFT_DATA_DIR'images'
mkdir -p $OPENSHIFT_DATA_DIR'images'
fi
#Create symlink
echo "Create link: "$OPENSHIFT_REPO_DIR'images -> '$OPENSHIFT_DATA_DIR'images'
ln -sf $OPENSHIFT_DATA_DIR'images' $OPENSHIFT_REPO_DIR'images'
Run Code Online (Sandbox Code Playgroud)
已创建符号链接,但index.html无法访问上载的文件
这是我的(哑)index.html测试页面:
<html>
<head>
<title>Test page</title>
</head>
<body>
<div id="image_container"/>
<div id="button_container"/>
<script type="text/javascript">
var loaded = false
var debug = false
var clickAction = function() {
if (debug) {
alert(process.env.OPENSHIFT_DATA_DIR)
}
else {
if (!loaded) {
var container = document.getElementById("image_container")
var image = document.createElement("img")
image.src = "images/montagna.jpg"
image.id = "img001"
container.appendChild(image)
loaded = true
}
else {
var container = document.getElementById("image_container")
var image = document.getElementById("img001")
container.removeChild(image)
loaded = false
}
}
}
window.onload = function() {
var container = document.getElementById("button_container")
var button = document.createElement("input")
button.type = "button"
button.name = "button1"
button.value = "clickme"
button.setAttribute("onclick", "clickAction()")
container.appendChild(button)
};
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
当我单击按钮时,我从服务器收到404错误(这是应用程序的链接).
请注意,我已经通过SFTP(带有Filezilla)将文件上传到~/app-root/data/images应用程序的目录中,并且符号链接似乎有效,因为我也可以看到图像~/app-root/repo/images.
最简单的方法是使用app.use().
app.use('/images', express.static(process.env.OPENSHIFT_DATA_DIR+'/images'));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2379 次 |
| 最近记录: |