当我向app.get传递两个参数时,为什么CSS不起作用?

时间:2019-04-16 16:33:20

标签: css twitter-bootstrap express

我正在创建一个快速应用程序,每当我在URL中添加“:ID”参数时,我的CSS代码就会停止工作。我知道这是一个文件路径问题,因为引导程序仍然可以正常使用,但是在具有ID参数的页面上显示如下:“拒绝应用'https://XXXXXX.c9users.io/unapproved/main.css'中的样式,因为其MIME类型('text / html')是不是受支持的样式表MIME类型,并且启用了严格的MIME检查。”

main.css在我的/ public文件夹中,但看起来像是在标题为“未经批准”的文件夹中。

我尝试更改路由顺序,尝试更改app.use(express.static(__ dirname))代码。

这是我的app.get:

ChilkatLog:
  FromOpenSshPrivateKey(3ms):
    DllDate: Mar 19 2019
    ChilkatVersion: 9.5.0.77
    UnlockPrefix: Anything for 30-day trial.
    Architecture: Little Endian; 64-bit
    Language: Cocoa Objective-C
    VerboseLogging: 1
    fromOpenSshPrivateKey(2ms):
      loadPem2(1ms):
        loadPem(1ms):
          itemType: OPENSSH PRIVATE KEY
          addPemItem(1ms):
            itemType: OPENSSH PRIVATE KEY
            This is an openssh-key-v1 key...
            loadOpenSshKeyV1(1ms):
              cipherName: none
              kdfName: none
              numKeys: 1
              szPubKey: 279
              szEncryptedPrivKeys: 984
              Unknown kdf name.
            --loadOpenSshKeyV1
            Failed to load private key...
          --addPemItem
          Failed to add PEM item.
          No more -----BEGIN's found.
        --loadPem
        Failed to load PEM
      --loadPem2
      Did you forget to set the Password property on this SshKey object prior to loading this private key?
    --fromOpenSshPrivateKey
    Failed.
  --FromOpenSshPrivateKey

这是我的html:

app.get("/unapproved/:id/", function(req, res){
    var invoiceID = mongoose.mongo.ObjectId(req.params.id);
    InvoiceObj.findById(invoiceID,function(err,foundInvoice){
        if(err){
            console.log(err);
        }else{
            res.render("invoiceScreen",{invoice:foundInvoice});
        }
    });

这是我的标题:

<% include partials/header %>
<h1><image src="<%= invoice.imageUrl %>"</h1>
<% include partials/footer %>

3 个答案:

答案 0 :(得分:0)

在这种情况下,最好为静态文件使用virtual path,因为相对路径不能很好地工作。喜欢:

假设文件夹结构:

app.js
public
|  +-- main.css
app.use('/static', express.static(__dirname + "/public"))

在您html中,使路径绝对

<link rel="stylesheet" href="/static/main.css">

答案 1 :(得分:0)

我认为更改CSS路径绝对路径将解决您的问题

<link rel="stylesheet" href="/main.css">

答案 2 :(得分:0)

例如,不要在assest(images / css / js)之前使用./或../。 ./css/style.css或css / bootstrap.css ../ images / example.png

例如,您可以使用/ /css/style.css /css/bootraps.css /images/example.png

/会告诉您的应用从根目录查找。